Fortunately I've overcome my "psychological factors" and I couldn't let this one slide by without further attention.  I have completed a new implementation of this Saxon/Xalan multi-factory test which implements Michael Kay's recomendations.   He is correct in pointing out the extra file I/O in my previous SAX parser strategy is wasteful. 
Posted here is my re-factor.  It adds a test of the base URI setting correcting the I/O exception I was receiving previously.  It also preserves the namespaces in the XSL templates.
Thank you for the gift of your time. Happy Easter to you as well.
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import javax.xml.parsers.*;
import org.w3c.dom.Document;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class MultiFactoryTest
  static String data = "<xml>Hello World</xml>";
  static File template = new File("my-stylesheet.xsl");
  static String version = null;
  public static void main(String[] args) throws SAXException, IOException, XPathExpressionException, ParserConfigurationException
    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder = docFactory.newDocumentBuilder();
    Document templateDoc = builder.parse(MultiFactoryTest.template);
    XPath xpath = XPathFactory.newInstance().newXPath();
    version = xpath.evaluate("
    TransformerFactory tranFactory = null;
    Transformer aTransformer = null;
    StringWriter result = new StringWriter();
    StreamSource src = new StreamSource( new StringReader( ) );
    StreamResult dest = new StreamResult( result );
    if( "2.0".equals(MultiFactoryTest.version) )
      tranFactory = new net.sf.saxon.TransformerFactoryImpl();
      tranFactory = new org.apache.xalan.processor.TransformerFactoryImpl();
      aTransformer = tranFactory.newTransformer( new DOMSource( templateDoc ) );
      aTransformer.transform( src, dest );
    catch( javax.xml.transform.TransformerException e1 )
      // Handle exception
      System.out.println( "RESULT:\n"+result.toString() );
<xsl:transform version="2.0" xmlns:xsl="">
    <xsl:include href="my-utilities.xsl"/>
    <xsl:template match="/">
                <p><xsl:call-template name="renderMessage"/></p>
            XSLT Version: <xsl:copy-of select="system-property('xsl:version')"/>
            XSLT Vendor: <xsl:copy-of select="system-property('xsl:vendor')"/>
            XSLT Vendor URL: <xsl:copy-of select="system-property('xsl:vendor-url')"/>
<xsl:transform version="2.0" xmlns:xsl="">
    <xsl:template name="renderMessage">
        <xsl:text>HELLO WORLD!</xsl:text>