i think the original post just mentionned « costly ». It didn’t say it was impossible to mess things up even with rust. Just that it removes the cost of checking types are still matching after a refactoring or a dependency update.
> A single threaded environment does not yield the usual advantages of the Rust borrow checker.
This is quite wrong - reference invalidation and async code that's being scheduled within a single thread are two common examples where it matters a lot.
Lots of boilerplate and error-prone code can also be avoided by implementing `drop` on relevant types, this can yield to pretty interesting APIs in the web space.