Mám stejnou zkušenost. Relativně malá věc (obsluha takového průmyslového průtokového ohřívače, takže pár čidel, PID regulátor, triaky, CAN rozhraní), měli jsme dost času tak jsme zkusili Rust, načetli svatou knihu a Embedonomicon, podle toho napsali bare metal firmware... funguje, ale rozdělení úsilí bylo tak 80% přesvědčování jazyka aby mi dovolil udělat co chci (zapsat bit někam do hw registru) a zbytek samotný vývoj aplikace. Chránit borrow checkerem HW periferie zní zajímavě na papíře ale reálně to je spíš boj, kor v takhle minimálním prostředí kde i relativně nezkušený programátor ví, co má procesor udělat na úrovni instrukcí (protože si to přečetl v datasheetu).
Experiment to byl zajímavý, ale vrátili jsme se k C. Jako compiler používáme zig cc (wrapper okolo clang/llvm) protože nesmírně zjednodušuje cross-compiling, a v posledních projektech jsem si všiml že kolegové mají i pár zig souborů. Usnadňuje to tvorbu některých abstrakcí: zig má luxusní způsob jak definovat složité Cčkové structy s přesně daným tvarem v paměti, takže se s tím snadno dělají drivery pro MCU hardware.