Is there a particular reason to keep the generated Vector Char from having a fill pointer, and thus unable to pop?
COALGEX> (coalton (the (Vector Char) (into "wow")))
#(#\w #\o #\w)
COALGEX> (coalton (vec:pop! (the (Vector Char) (into "wow"))))
Yields the error
#(#\w #\o #\w) is not an array with a fill pointer.
[Condition of type COMMON-LISP:SIMPLE-TYPE-ERROR]