Musing this morning...
The "let <refutable_pattern> = <expr> else { <divergence> };" syntax was added to Rust quite recently. In a version of Rust where this syntax was available from the get-go...
...could we have removed unwrap()/expect()?
Could this have also removed a need for #[track_caller]? (There might be others, but I think unwrap/expect were one of the big motivations.)
Because I feel like it's gradually replacing the remaining uses of unwrap in my own code (and there aren't a lot).