Hallo,
man kann immerhin xsl:variable-Konstrukte zyklisch neu erzeugen, etwa in xsl:for-each.
Ansonsten lohnt ein Blick auf XSLT 2.0 / 3.0. Darin gibt es so genannte Sequenzen, denen man n-fach Werte oder Knoten zuweisen und auch wieder entfernen kann.
Arrays und Maps leisten ab XSLT 3.0 / XPath 3.1 noch viel mehr.
Grüße, Thomas