You have an axe to grind and it’s obvious and silly.
“Safe” means that a program is sound, that the behavior at runtime corresponds to the written code. It does not mean that the behavior corresponds to one’s business needs. That’s not a problem that programming languages can solve.
unwrap() is like assert() in C: its defined behavior is to panic if a condition isn’t met. Here is the documentation:
https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap
There’s no subtle way to accidentally unwrap when you don’t mean to. The comparison to NULL pointer deref is therefore inapt. If you don’t want an assertion, don’t write one!