Utilizaciones no previstas para XSLT

Llevo utilizando XSLT dos días y aunque con ese nivel de experiencia no estoy en posición de decir mucho al respecto, debo comentar que hay cosas que sorprendentemente resultan todo un problema al momento de querer implementarlas.

Para dar cierto contexto a lo que diré en adelante, el proyecto en el que llevo trabajando (como ayudante o stagiaire si lo prefieren) empezó a finales del año pasado y por más que considere que XSLT en este caso en particular no sea la mejor opción, por el momento estoy obligado a usarlo.

En fin, la parte en la que estoy trabajando tiene que ver con la conversión de un automata finito determinista1 a otro equivalente en el que se incluye operaciones a realizar en función a las transiciones y estados. La siguiente imagen ilustra un tipo de transformación:

Street Automaton to Enforcement Monitor
Parte de "Synthesizing Enforcement Monitors wrt. the Safety-Progress Classification of Properties"

Por clara y relativamente sencilla que parezca esa regla, me está costando implementarla en XSLT. Por ejemplo el hecho de que las variables en este lenguaje se comporten como constantes hace que muchas veces tenga que hacer concatenaciones o funciones (templates) recursivas, lo que porsupuesto hace más feo y largo el código.

1. En realidad me refiero al Automata de Street.