Это то, что я чувствую, когда программирую.
XSLT полностью основан на определении функций и применении их к выбранным событиям, поступающим во входной поток.
XSLT позволяет вам установить переменную. Функциональное программирование не позволяет функциям иметь побочные эффекты - и это важно.
Тем не менее, при написании в XSLT ощущается то же самое, что и при работе в режиме FP. Вы работаете с вводом - вы не меняете его - для создания вывода.
Это очень, очень отличная модель программирования от используемой при работе с DOM API. DOM вообще не разделяет ввод и вывод. Вам передается структура данных - и вы можете манипулировать ею так, как считаете нужным - без колебаний, ограничений или угрызений совести.
Достаточно сказать, что если вам нравится FP и принципы, лежащие в его основе, вы, вероятно, будете чувствовать себя комфортно, работая в нем. Точно так же, как опыт работы с программированием, управляемым событиями, и с самим XML, вам это тоже будет удобно.
Если ваш единственный опыт работы с нисходящими, не управляемыми событиями программами - тогда XSLT будет очень незнакомым, действительно чуждым ландшафтом. По крайней мере, на первый взгляд. Приобретая немного опыта, а затем возвращаясь к XSLT, когда XPath-выражения и обработка событий действительно удобны для вас, вы сможете окупиться.