Na verdade o borrow checker te salva de coisas que tem em linguagens como javascript que ninguem de conta como data races por exemplo, compartilhar referencias mutaveis é comportamente indefinido e ponto final. você deve sempre travar pra apenas ter 1 referencia mutavel por vez em qualquer linguagem e o borrow checker te salva disso.
E tambem tem que entender que não tem um runtime tomando conta de tudo, então você tá mexendo no nivel de um C++ da vida, por isso que existe várias maneiras de gerenciar memoria e vários "ponteiros inteligentes", que inclusive até existe similares no c++, so que não tem as verificações de segurança do rust em tempo de compilação.