Agreed. I'd love to see an even more in depth document that takes a wide range of ownership/allocation patterns that are common in C and C++, shows Rust equivalents, and analyses why Rust can or cannot prove that they are safe (i.e. whether they require unsafe blocks or not). I don't have an intuitive sense yet for the boundaries of what Rust can automatically prove safe. How much C and C++ could be directly translated into safe Rust and how much would need to be reworked or put in unsafe blocks?