Your mistake here:
([coll] (recursive-reverse [coll nil]))
You call recursive-reversewith one argument (vector). This calls up the same list of function arguments, so it is recursive and creates a stack frame every time.
Change it to:
([coll] (recursive-reverse coll nil))
and you must be right.
( , , nil, '() next, rest. , , , .)