Потому что
borrowing юзаем временно, например, если составляем список объектов, которые нужно изменить
Box юзаем тогда, когда не хотим, чтобы из-за него структура распухла в памяти, либо есть рекурсия
Rc.. А он не работает с многопоточным кодом никак, даже когда он куда-то вложен. Те захотел добавить потоки — рефакторинг
Arc уже позволяет многопоточность. У меня всегда код многопоточный(спасибо расту, писать его не сложно и толком безопасно, дедлоки на бумажке находятся), поэтому Rc я не юзаю никогда