ну это вроде как две алокации будет, правда не известно насколько там много данных ожидается, и если их там в пределах сотни, то вообще не очень понятно что соптимизируется
ты задал вопрос как можно оптимизировать функцию, при этом не дав саму функцию. очевидная имплементация ее это:
(defn reverse-diap [vec from to] (mapv #(nth vec (dec %)) (range to from -1)))
на вопрос что именно ты хочешь оптимизнуть и возможно тебе лучше поменять задачу и view (он же слайс) подойдет лучше ты просто решил повторять какое-то слово