1) как ужу писал - для 60-70% прокетов Smarty более чем хороший выбор.
это хороший выбор еще и потому что избавляет от необходимости писать "собственный генеальный и просветленный" вариант того же самого
2) далее начинается вопрос идиологических воин. По моему глубокому убеждению програмирование в шаблонах это зло. Зло прежде всего потому, что если дать людям такую возможность, они ей пользоваться начнут. Иногда просто потому - "ну сейчас мы быстрому сделаем этот кусок здесь, а потом перенесем в основной логический уровень". Это не со зла. Просто очень много вещей делается сейчас и по быстрому если так можно сделать.
но если у вас действительно нагруженный (посещаемостью, а не скоростью выполнения вашего собственного, очень правильного и академически грамотного приложения) проект НЕ НАДО ДЕЛАТЬ ДВА УРОВНЯ ЛОГИКИ. А програмирование в шаблонах - это второй уровень логики выполнения перед отдачей страницы. Вот это (по моему глубокому убеждению) и есть "зло".
3) если сможете сдержаться и не нагородить програмиирования на шаблонах - всегда сможете слезть со Смарти, когда это на самом деле понадобиться и когда у вас будут решены все остальные проблемы и вы не будете на бегу пытаться изобрести что в попыхах.
P.S. пп.3 (имхо) не выполним в реальной жизни. Но к моменту, когда это действительно понадобиться, эту проблему можно будет решить.