SP>не понятно, что значит by-value. Вроде полная аналогия с С++ Также по-умолчанию производится копирование. И только если не реализован трейт Copy производится перемещение.
Резонно.
Мне кажется это из за смены привычек. В С++ ссылки и указатели свободно передаются и возвращаются из функций. Работа со стековой памятью и кучей единообразна, хошь — аллоцируй, не хошь не аллоцируй. Не нужен какой то там специальный Box<> тип чтобы держать объект в куче.
В Расте, из-за верифицируемой политики единого владельца ресурсом, компилятор часто даёт по рукам если начинать фривольно раздавать ссылки на объекты. В результате часто объекты, вместо того чтобы быть переданными по ссылке будут moved в функцию (чтобы не возиться с lifetime и mutable borrows).
Я не знаю, возможно тут моя неопытность меня кусает. Но я признаю что в Расте мне гораааздо проще писать если у тебя все объекты идут по значению. Просто тасуешь данные с места на место.