What "'old' value" are you talking about?
This is a pointer:
val := atomic.LoadUint64(&a)
> Because sync.Wait() isn't used, there's no guarantee the goroutine will execute at all before program halt.It's an infinite loop ...
> I'm not sure why atomic.Add* should get special treatment though
Because it side effects and arguably it is a form (mem) I/O in context of modern systems.