On Windows and Mac OS X you shouldn't really avoid C libraries (kernel32.dll and libSystem.dylib respectively) because the syscall interface is considered a private API. (You can avoid it technically, and apps sometimes do, but Microsoft and Apple would be within their rights to break us at any time if we did that.)
Would the Rust team accept PR to remove the dependencies on libc for Windows?
They're libc calls, libSystem is the union of a bunch of libraries including libc. In fact, these unioned libraries are just symlinks to libSystem:
libc.dylib -> libSystem.dylib
libdbm.dylib -> libSystem.dylib
libdl.dylib -> libSystem.dylib
libgcc_s.1.dylib -> libSystem.B.dylib
libinfo.dylib -> libSystem.dylib
libm.dylib -> libSystem.dylib
libmx.dylib -> libSystem.dylib
libpoll.dylib -> libSystem.dylib
libproc.dylib -> libSystem.dylib
libpthread.dylib -> libSystem.dylib
librpcsvc.dylib -> libSystem.dylibI understand the shortcut as a way to reduce development time, but maybe that is something to improve.
Go made the right decision by integrating directly with the OS APIs.
The argument here is that on Windows and Mac OS X, the libc library is the ‘raw OS API’ and it hence makes perfect sense to rely on it if you want to support such operating systems.
No need to have any dependency on msvcr*.dll or the equivalent for Borland, Intel and other Windows compilers, which are effectively the Windows libc.
I noticed that they were a bit slow to support infinities and NaN, but that is not the same thing a being wrong.