I would say that this explanation is false. In general, all Rust code must be exception safe to the extent that it must preserve memory safety, and all safe Rust code is exception safe by construction.

I actually *disagree* with Graydon's justification for not catching exceptions. Rust has exceptions, therefore Rust must be exception safe. By not making exceptions recoverable - and truly exceptional, it reduces the surface area for exception safety errors, but because we have destructors that run during unwinding, and because we have multithreading, all the problems of catchable exceptions are present in Rust, but to lesser degree.