I believe Rust isn't exactly memory safe either: https://stackoverflow.com/questions/24898579/why-does-the-ru... (and I think bounds checking can be turned off).
The borrow checker is a Big Deal™, but even outside unsafe blocks, Rust did not go all the way to perfect safety. Safety remains a spectrum, not a binary choice. The extreme end of that spectrum isn't Rust. It's using a proof assistant to mechanically check the correctness of your entire program.