Rust is a completely different story. Sure, Rust's standard library treats OOM is fatal, which is the right thing for almost all application code, but it's not difficult to create Rust libraries that treat OOM as a recoverable error, or that don't allocate at all.
If the Singularity group had invented Rust instead of Sing# things might have turned out differently.
Multiple OSes have been written in GC enabled system languages.
Having a GC doesn't mean all memory is required to be GC allocated on the heap, usually the same mechanisms of a language like C++ are also available, e.g. Modula-3, System C#, D and so forth.
Joe Duffy clearly states in one of his Midori talks that WinDev did not believe in Midori, even with it running in front of them.