Ответ 1
concat возвращает ленивую последовательность.
user=> (doc concat)
-------------------------
clojure.core/concat
([] [x] [x y] [x y & zs])
Returns a lazy seq representing the concatenation of the elements in the supplied colls.
вы можете преобразовать его обратно в вектор с помощью:
user=> (into [] (concat [1 2] [3 4] [5 6]))
[1 2 3 4 5 6]
в использует переходные процессы, поэтому он довольно быстро об этом.