Atomic does not mean compound expressions are atomic
A load followed by a store is two separate operations and loses concurrent updates. Read-modify-write operations or a compare-exchange loop make the transition conditional on the value that was observed.