It's hard to keep track of all the Linux distributions, though, with the number of Linux developers and the number of Linux distributions steadily converging.
OK, so maybe it's better now that Ubuntu has conquered all, but writing software on a BSD and then attempting to make it work on "Linux" is a nightmare. Every single distribution does something different, and it's a nightmare to work around. Whereas the BSDs tend to be very consistent.
Unless you can prove this, it's hearsay. Part of the reason why linux and BSD don't actually get POSIX certified is because they change so quickly that it wouldn't be practical. So it's difficult to get an idea of what system is most compatible with POSIX. And even if you did, it would be different by the next version.
OK, there are probably corner cases where Linux isn't quite compliant. However, in my day to day work, I encounter far more problems with BSD than with Linux. I don't know how I'd go about proving that to you.
Well that's true up until a point. But an OS is more than an API, it's also a collection of files and libraries within a directory structure. In my experience Linux distributions rarely agree on these minor points, and that is where the hassle lies in porting anything non-trivial.
The details where they differ are not standardised. If you stick to the standards, you will have no problems. The problem with BSD is that following standards is what gets you in trouble.
OK, so maybe it's better now that Ubuntu has conquered all, but writing software on a BSD and then attempting to make it work on "Linux" is a nightmare. Every single distribution does something different, and it's a nightmare to work around. Whereas the BSDs tend to be very consistent.