However, that does not mean that every single piece of code must be 100% safe. An embedded developer today is already constantly juggling with safety. Especially when it comes to low-level hardware interaction, I'd rather have a raw unsafe API today than wait several years for an inevitably-flawed safe abstraction.
I don't need Rust to track the ownership of an I2C peripheral. It's a nice-to-have, but it is easy enough to do by yourself - there aren't that many of them and interactions are rather obvious. I'm already used to the possibility of mishandling some pins resulting in the board catching fire, I promise I can handle this.
On the other hand, I really do want Rust to keep track of what's going on in all my business logic, for all the same reasons you want memory safety on a regular computer. Is my 10k-line protocol handler safe? Sure would love a double-check on that!
So no, I'm not really all that interested in the fancy clever abstractions. Making sure the KISS ones are rock solid is far more important to me.