Wishing Apple did something differently does not make it so. Either you accept the stable interface for what it is or you accept your binaries may break. And you've only yourself to "blame" in the latter case.
I don't have to blame anyone because I don't own any Apple products, what I'm getting at is that Apple's "Minimal Documentation, force through our blessed channels" way of going about things is kind of remarkable given that microsoft have been absolutely slammed for similar actions in the past.
There has to be a line draw somewhere to demarcate where the interface of a system is defined. Just as Linux does not attempt to ensure that using /dev/mem to manipulate kernel data structures works the same between versions, many operating systems don’t make promises about the syscall interface.
That's a really weird way to phrase it. Apple says that interface is unstable. Go uses it anyway. The unstable interface turns out to be unstable.
It wasn't Apple that broke Go binaries. It was Go.