thats true on many systems... nothing special about 0x0 other than NULL happens to be defined as 0 in most toolchains an some functions use NULL to report an error.
The technical definition of opoerating system is the software that manages the resources of the computer, i.e. RAM, storage, processor time, etc (Typically known as the Kernel).
I've got 25+ years experience in realtime/embedded work and I have to disagree with you there. all compilers I can think of have been C99 compliant for a number of years now.
MSVC is compliant now also.
- scaling vertically is cheaper to develop
- scaling horizontally gets you further.
What is correct for your situation depends on your human, financial and time resources.