Obviously the Win32 subsystem isn't POSIX compatible, but I'm not sure why we would want that.
GNU/Linux users should be happy that old Microsoft didn't bother to do that much with POSIX subsystem.
Had they actually invested into keeping it up to date, and many of us on PC land would never bothered with FOSS UNIX clones.
Simpler than Win32 + Unix portability in any case. Or in some cases, software would have been ported to Win32 at all.
Back when I was in the university, and Linux kernel was still at 1.0, I had the pleasure to write C and C++ code across Xenix, DG/UX, Aix, HP-UX, Solaris, BSD and naturally Linux also.
There is POSIX, there is what each OS actually do for the implementation defined behaviours, then the whole set of APIs that made each UNIX variant unique and were the selling point of the UNIX clone to start with.
Autoconf and friends did not start out of masochism.
That's not necessarily the case. See macOS which is using different GUI libraries, Metal instead of Vulkan etc.
So you can't recompile macOS apps to use them on Linux.
POSIX-certified systems conform to different POSIX standards. And most of them are of no use to the average developer such as AIX, HP-UX, Solaris.
The rest are largely compatible which means they are not compatible. And yes, that includes every single one of Linux distributions and FreeBSD.
We need better operating systems metaphors.