Rust avoids a lot of the C++ pitfalls out of the gate with a split core vs std library set.
Panic handling and message formatting are something that however is a known drawback in debug builds. In release builds this gets optimized away in most cases.
It is becoming less and less of an issue as the more powerful SoC items have come down in price and have more memory/flash. The newer ones also usually come with a somewhat modern compiler stack. Also if you follow some of the MISRA standards in some projects it can even more radically change what you can and can not do.