No, he's somewhat correct. I don't care *when* the new state makes it into the atomicref.  It may happen when it hits that instruction, or sometime later.

However, "get" is volatile, in the sense that the JVM will force the write buffer to be flushed before reading, leading to safe reads, always.  So all we're doing here is letting the processor figure out when it wants to write the value instead of FORCING the write buffer to flush right there.  Since we have a bunch of other synch points elsewhere, it's just a microoptimisation.