Yes. `concat` in a loop is tricky: each additional concatenation creates a new lazy sequence object which points to the previous lazy sequence. If you get too many of those, trying to realize the lazy sequence will cause a stack overflow.
In general, I recommend using `concat` only in recursive functions that return lazy sequences, and never in a `loop` or `reduce`. If you want to accumulate a sequential result non-lazily, use `into` and a vector.
-S