Re: Interfacing to OS has to work at low level for maximum flexibility
There aren't many C standards, except for successive versions of the standard, like with any other standardised language (C89, C11, ...). C leaves some things implementation-defined, which is in line with its low-level nature.
It is "lowest common denominator", because it is implemented for almost any CPU architecture anyone cares for. Not true of any other langauge (Assembler does not count, because it is by its nature totally different for each architecture).
ASN.1 is not a good comparison because it explicitly is designed for defining data for interchange between systems, and for nothing else. You cannot program in ASN.1. You also cannot use it to define an arbitrary data structure at bit level, because the data defined in ASN.1 is BER or DER encoded in the implementation, which uses particular rules and metadata to ensure the receiving end can reconstruct the high-level data. By contrast, in standard C you can use data types with fixed sizes from the stdint.h header to lay out your struct very precisely and portably. Really the only things you cannot define is endianness and padding, but the last can be avoided by ordering the fields of different sizes suitably.
(Hmm, looks like I disagree with almost all your statements).