Is OCaml somehow easier for handling intrusive data structures safely? From my cursory glance, one can be pretty functional-programmey, just as in OCaml, and Rust's type system is reasonably powerful for static analysis of many things.
The OCaml module system doesn't exist in Rust, and is key to being able to fling around large abstractions with very little runtime cost.
It's worth bearing in mind that OCaml is really two distinct languages: the core ML-style language (which is concise due to type inference, and I think what the above poster is referring to by "pretty functional-programmey"), and the module language (which is verbose and signatures explicitly written down with no inference).
The latter is really the key to constructing large scale systems like Mirage, since they allow fragments of OCaml code to be mapped onto everything from Xen unikernels to JavaScript. Modules can be higher-order (that is, depend on other modules). You can read more about it at https://realworldocaml.org/v1/en/html/functors.html
It's also not yet clear how well Rust's ownership types will scale in bigger systems, but I'm sure we'll find out as the language stabilises. OCaml is a stable, fast and mature implementation of ML that has been around for years.
Nice overview of the Ocaml module system. By the way, just wanted to say thanks for maintaining the Ocaml/Opam PPA, and for keeping it so up-to-date. Has made installing and working with Ocaml much easier for those of us on Ubuntu and distros based on Ubuntu.