Совершенно приличный пример. Сделали снипет и юзаем его. Это же не функция логики, всё в рамках представления. Что тебя смущает?
Тоже самое, про что я говорил выше. Только вместо дерективы include используется типа "вызов функции". Если шаблонизатор поддерживает несколько снипетов в одном файле и тебе это удобно, то почему же нет. Я привык под каждый структурный кусок отдельный шаблон. Но и там и там в шаблонах нет логики.
@master, посмотри внимательно на пример, который ты привёл. Это не функция. Это сгруппированный набор директив текстовому процессору, именнованный кусок шаблона.
Когда ты начнёшь в своём шаблоне отправлять, получать данные (по сети, в файл), вычислять, передавать управление - вот тогда начнётся логика. А до тех пор это всего-лишь инструкции для генерации представления.