Я не эксперт по Clojure, но, поскольку это по сути Лисп, все должно быть так: unquote-splice - это unquote, которая объединяет список с той позицией, где он используется. Разница выглядит так:
`(1 2 ~(list 3 4)) => (1 2 (3 4))
`(1 2 ~@(list 3 4)) => (1 2 3 4)
` == syntax-quote
~ == unquote
~@ == unquote-splice