Первый и третий подходы являются наиболее распространенными, которые я видел. Я регулярно работаю с GSA и специально работаю над многими интерфейсами поиска. Вообще-то, я много работаю над подходом № 3, но у меня никогда не было сожалений о той или иной реализации - есть просто некоторые вещи, которые можно сделать только с помощью третьего подхода, так что если вы хотите одну из тех вещей, это то, что вы нужно сделать. Могут быть и другие соображения: как консультант, я строю вещи для других. Моему клиенту будет проще поддерживать решение в своей текущей среде, а не XSLT? Большинству разработчиков не совсем удобно с XSLT.
Я видел еще один вариант - использование XSLT для перезаписи XML в HTML или другой формат XML, а затем его использование через пользовательское приложение на стороне сервера. Я не совсем уверен, чем это оправдано, мне это показалось излишне сложным, но это был не мой выбор.
Еще одна возможность, которую я еще не видел, - это использование вызовов AJAX для внешних интерфейсов устройства, которые предположительно возвращали бы XML или JSON из внешнего интерфейса.