> won't guarantee that some other thread of execution won't change the value under your nose
My understanding is that compilers can always assume that there is no other thread involved, which (part of) why C11 atomics are necessary. Is that not the case?