Related reading: https://tonyarcieri.com/would-rust-have-prevented-heartbleed...
In that regard Rust has reduced both 1) and 3) by only exposing dangerous features in unsafe {}, and greatly improved 2) since the compiler itself is checking those errors.