Can you give me an example of what the borrow checker prevents you from doing without calling Rust developers delusional?
The hardships are way overstated, in my opinion. One issue I can think of newcomers might have is immutable and mutable references. You can't borrow as mutable something already borrowed. Let's say you have a reference to a Vec element, then you add an item to Vec. The realloc could invalidate that reference, which Rust prevents. Using Cell/RefCell also helps if you don't want to deeply nest &mut.
Rust is definitely hard, but after a while it's fine and you kind of get how even if using another language you still have to think about memory.