To reproduce the problem, compare:
(If reducers are faster than seqs, increase the range.)
The sequence can't be garbage collected because the reducer can't be garbage collected because the first local is never cleared.
Clearing the first local is tricky because the "this" object bears the closed-over locals and misc caches. So its lifetime is longer than expected and harder to compute.
See https://groups.google.com/d/msg/clojure-dev/t6NhGnYNH1A/2lXghJS5HywJ for more details.
A proposed solution is to clear "this" before tail calls.