「オブジェクトの寿命とリソースのロック期間を一致させる」くらいのお気持ちで理解して
本当は C++ の std::fstream のような dangling も避けられた方がベターで、たとえば「何のファイルも指してない謎の fstream」みたいなのは存在できない方がいいのよね
std::fs::File - Rust
https://doc.rust-lang.org/stable/std/fs/struct.File.html
実際、 Rust の std::fs::File は「何のファイルも指さない File オブジェクト」は作れない