Reference counting very much incurs a runtime cost; it's not just a compile time abstraction, like borrow-checking in Rust.