Ответ 1
Я рисую диаграмму. Первое значение является указателем на непрерывный массив чисел в куче.
(stack) (heap) ┌──────┐ ┌───┐ │ vec1 │──→│ 1 │ └──────┘ ├───┤ │ 2 │ ├───┤ │ 3 │ ├───┤ │ 4 │ └───┘
Вторая версия добавляет дополнительную косвенность. Элементы все еще находятся в куче, но теперь они находятся где-то еще в куче.
(stack) (heap) ┌───┐ ┌──────┐ ┌───┐ ┌─→│ 1 │ │ vec2 │──→│ │─┘ └───┘ └──────┘ ├───┤ ┌───┐ │ │───→│ 2 │ ├───┤ └───┘ │ │─┐ ┌───┐ ├───┤ └─→│ 3 │ │ │─┐ └───┘ └───┘ │ ┌───┐ └─→│ 4 │ └───┘
Из-за того, как собственность работает в Rust, вы не столкнетесь с семантическими различиями. Дополнительная косвенность дает вам худшее использование памяти и локальность кэша.