На самом деле,
разумеется, тип шаблонизатора не имеет ни малейшего значения.
Первичен
подход к проблеме. И
качество прокладки между стулом и монитором.
Говнокодер всегда будет говнокодить. И если дать ему шаблонизатор, не позволяющий писать РНР в шаблоне, то у него будут горы HTML в контроллере.
Программист же вызовет сниппет
<section><? ins('button_or_ava') ?></section>
При этом у сниппета будет свой шаблон
<? if ($user): ?>
<div id="user-box">
<span class="ava" style="background: url('/images/avatars/<?=$user->avatar?>'); background-size: cover;"></span>
</div>
<? else: ?>
<a class='enter'>Вход</a>
<? endif ?>