Go's memory model is more constrained than C, C++, and Swift and this case is specifically addressed: https://go.dev/ref/mem#restrictions.
"...each read of a single-word-sized or sub-word-sized memory location must observe a value actually written to that location"