Почему плохо писать код в шаблонах?
Ну вот сломалась у тебя база данных. Ошибку выдаёт. Что будешь делать? Пол-шаблона то уже вывелось.
Вообще хороший вопрос, в чем-то показательный. 
Новички все поголовно мыслят позитивными сценариями, причем линейными. Запросил - получил - вывел.
И только с опытом приходит понимание, что на этапе запросил могут возникнуть проблемы. что на этапе "получил" из бд вылезто то, то что надо было вывести в заголовке страницы. Как этот фарш теперь провернуть назад? Что этап "вывел" тоже не так прост - иногда надо вообще ничего не выводить, а сделать редирект к примеру.
Именно поэтому вывод начинается только после того, как вся логика отработала и все данные получены.
Конечно, писать код в шаблонах не очень хорошая идея. Но обращаться к базе, почему нет? Вопрос реализации шаблона и уровня абстракции. 
Например, так:<ul data-wb='{
   "role":"foreach",
   "from":"news",
   "where": {
         "active":"on",
         "author":"admin"
    }
   "limit":"10",
   "sort":"data:d"
}'>
<li>{{datetime}}: {{header}}<br>{{short_text}}</li>
</ul>