But it's certainly possible that Windows is even more bizarre than I suppose, in ways that I have yet to encounter.
It was interesting watching node/libuv face all the same problems I did when originally trying to abstract over this.
http://web.archive.org/web/20110719052845/http://developers....
The problem with POSIX, like any other standard, is that not all systems implement the same POSIX.
Additionally there are APIs which have undefined edge cases or different limits (e.g. amount of open file handles).
So even if you only target POSIX systems, you have to pollute the code with #ifdef to handle such differences.
It is similar to do web development. There are standards, but each browser version is a different world.