The Symbian consortum managed to splinter SymbianOS into incompatible platforms all by itself, which has only been corrected by Nokia finally buying out its remaining partners. And the use of C++ classes in the OS API practically guarantees that they will break binary compatibility again.
As for resource-efficiency - SymbianOS was highly optimised for its platform, but that was a Psion PDA with a few megs of battery-backed RAM storage, not a mobile phone with hundreds of megs of flash storage. You can't execute-in-place from cheap flash storage, which made it very slow to start programs and to boot, though I understand it does now implement demand paging.