На самом деле, когда вы предоставляете Saxon StreamSource, он должен по умолчанию использовать TinyTree для внутреннего использования.
Что касается скорости: как заметил саксонский автор, Xalan делает одну из 2 возможностей, в зависимости от таблицы стилей: быструю или правильную. Саксон всегда делает все правильно, что в некоторых случаях означает, что это медленнее. Частично проблема заключается в том, что спецификация XSLT 1.0 определяет некоторые вещи, которые должны вести себя таким образом, который очень трудно оптимизировать правильно (но довольно просто, если изменить поведение на несоответствующее).
Однако, несмотря на это, я всегда считал, что Saxon работает быстрее или быстрее с более сложными таблицами стилей. Xalan часто быстрее для простых.
Наконец, Saxon был значительно оптимизирован с течением времени, поэтому убедитесь, что вы используете более новую версию (Saxon 9.1)