They certainly have a penchant for randomly crapping on people that don't do things the Officially Supported Way(TM). For example, one rev of MacOS changed the ABI for the gettimeofday() kernel system call. That broke Golang (and Virgil). Apple didn't care. They want you go through libc for some reason. Uh, no, don't break userspace.
Microsoft also changes the kernel syscalls between releases. It's not unusual for operating systems to specify ABI at the libc level, in fact I believe Linux is the odd one out to specify ABI at the syscall level.
Apple has been crystal clear since 1999 that syscalls are not ABI on Darwin. Linus chose to draw that line differently, which is fine; Linux is a different environment.