It is irrelevant if the underlying system is proprietary or patent encumbered for sake of portability. You may be right that there are undocumentated parts of certain APIs, but if a Windows program only uses the well documented parts of the Windows APIs and runs well in Wine it totally fits your definition of portability.
Originally Posted by RahulSundaram
I don't get why that is, but for some reason you seem to think portability means not that your software supports different platforms, you seem to think that it is up to the platform to support your software.
Portability means: "Our software supports platforms that are not our main focus". It does not mean "We declare our software to be portable, so get your shit together and change your platform in a way that our software can run on it".