Without commenting on the topic at hand, there is one line I absolutely had to address:
Rust was invented because its creator, Graydon Hoare, got stuck on an elevator, when the elevator's firmware crashed. Since the elevator's safeties kicked off, this is basically the same outcome as you'd get from a fatal error.
You can say the firmware crashing, instead of sending the elevator to random floors, or dropping the elevator down the shaft, is "safe". But being stuck in an elevator is still a serious condition. Even if you're not claustrophobic, and if the chances of starving to death before rescue comes are slim, this is not an appropriate situation for the firmware to arrive at.
The same is true for many other types of software. Server software crashing would disconnect active clients. Document editor crashing could cause loss of data. A program that is in the middle of serializing files could result in data corruption. And in multi-client services, it's much better to crash/disconnect a single client, than take down the whole process.
While there isn't always a way to recover, there are still plenty of cases where an exception is preferable to a fatal error.
Plus, it's always possible to turn an exception into a fatal error using try!
. But the opposite is not true.