I see no WTF here. Concurrent reads from * p <i>have</i> to be allowed to produce any possible value whatsoever, since if the variable is larger than a system word, the compiler may have to break up the write into multiple instructions (and some architectures don&#x27;t even have instruction-level isolation).<p>The language doesn&#x27;t give you any stricter concurrency guarantees just because a variable is sizeof(void* ). And that&#x27;s <i>good.</i> It makes the language cleaner. No bullshit special cases that require you to know implementation details. You want atomic behavior, use std::atomic (or a lock), period.