Now, in your world, it can't.
So before, you would have seen x=1 in the call to bar, and now when you use the debug library, you will see x=2.
Now, in your world, it can't.
So before, you would have seen x=1 in the call to bar, and now when you use the debug library, you will see x=2.
In other words, it might be a bit strange and cause a slight detour in your quest to discover the cause of a bug, but it wouldn't actually change any behavior or cause any issues.
You can argue "The behavior it changes doesn't matter". As i've shown, 1. it does in a threaded environment (like, you know, go) 2. It depends on whether your code is buggy or not.
IT's certainly true that it never, on it's own, causes bugs. But as i've shown, it can make bugs appear to come or go.
If you don't think that will ever happen, i don't know what to tell you, other than "It has happened in literally every compiler that has ever had barriers like this".
Without any evidence why Go should be different here, i don't see why go will be different here.