IMO, Android isn't generally applicable. The reason Android works is because you have a (fairly) limited set of devices with more or less the same hardware and capabilities (e.g., touchscreen, GPS, radios, gyroscope etc.) So application writers have a fixed number of events they need to access, and a VM + software stack would be able to provide that while making development and security relatively easier.
Real operating systems have to run on a myriad of hardware and potentially interface with tons of devices and protocols, so you would need to allow programmers to go to the hardware level and read and write bytes by hand.