Until recently, there has been no viable memory-safe alternative to C/C++/Assembly for such applications.
They could have just gone with “no viable memory-safe language for implementing a bootloader” as none of those three is memory-safe.
OpenFirmware used a Forth interpreter back in the 90s, and this approach was relatively memory safe, but you still needed to build the interpreter.
Using Rust’s static analysis system should assist with this part, but you still have to have a full understanding of the underlying compiler Rust is using, and the hardware architecture it is interacting with.
Rust + RISC-V sounds like a really good educational approach, and doing an in-depth analysis of a few implementations to discover the pitfalls sounds like a great idea.
But if LISP machines taught us anything, it’s that the devil is in the details; LISP machines were also supposed to be memory-safe computing environments as far back as the 1970s — but there are multiple reasons these never became the basis of modern general computing devices.