That’s true for Linux and why Go thought they could do this everywhere. It turns out that libc is the only stable interface for a lot of platforms (notably MacOS and many other BSDs if not all).
Correct, on Windows there is no stable syscall interface, same for BSD. Hence you're supposed to link things. But Linux syscall interface is stable and libc is definitely not stable.