I believe that Xalan has a xalan:evaluate() extension; and Saxon certainly has saxon:evaluate(). However, these can only be used in an XPath expression context, whereas you seem to be trying to construct an XSLT pattern dynamically. As far as I'm aware that's not possible.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference