When you create a sequence of free-standing element nodes, Saxon tries to avoid creating a new TinyTree structure for each one, because creating the structure is an expensive operation and it's generally faster and saves memory to append the new element to an existing TinyTree structure (it's really a forest). There are a few tests in there to stop this going to extremes. On this particular path, these tests aren't kicking in. In fact, the current code is reusing tree structures much more aggressively than it used to, which is often a good thing to do, but not in this case.
Patch in subversion. The effect of the patch is to avoid making a SequenceOutputter (and hence a TinyTree) available for reuse if it already contains more than 20,000 nodes.