what makes senior rust devs choose between regular borrowing vs smart pointers like arc/rc or refcell/mutex
been wondering about this decision process in actual projects not just tutorial stuff. how do you figure out when the borrow checker is fighting you too much and its time to reach for the shared ownership tools instead of trying to make basic references work