Pokud jednou za uherský rok potřebuješ změnit hodnotu v paměti, tak na to nepotřebuješ ani atomics.
Třeba x86 nemá ani instrukce pro atomické čtení/zápis, ale má instrukce jako mfence (bariéry). Takže na x86 by bylo nejrychlejší aby všichni co tu hodnotu čtou ji četli normálně (klasický mov) a pokud ji budeš potřebovat aktualizovat, tak ji tam zapíšeš (mov) a zavoláš mfence. Během té chvilky nějaký thread ještě může přečíst starý pointer, ale nemyslím si, že to by tě to v tomto případě tankovalo.
Podle mě celkem blbý příklad pro využití atomických operací, které jsou nejvíc potřeba tam, kde se atomicky musí ta hodnota změnit a změna závisí na té předešlé hodnotě, kterou neznám a nechci číst, protože když ji přečtu tak nemám záruku, že se ta hodnota už nezměnila (fetch_add, fetch_or, fetch_and, compare_exchange, atd...)