I'm curious: why reinvent the VM "wheel"? Why is LLVM inadequate? Or any other VM?
More specifically, what functionality does Urbit require that makes a bespoke VM necessary?
Many reasons. The VM is minimal, has a precise mathematical spec and is tailored to be a base for a purely-functional OS. The details of the VM are usable in the higher layer. It's more like a Lisp-machine, than LLVM.
[1]: https://urbit.org/blog/stable-arvo/