Костыли - все то, чего нет в начальной комплектации.
Уверен что твой preg_replace будет еще большим костылем. Задай себе такой вопрос: Если Smarty костыль - почему именно этот костыль используется в тысячах проектов, и каждый не пишет своего?
ни на что кроме прег_реплэйса фантазии не хватает?
например, есть тема выполнения кода в самом шаблоне, как это реализовано например в вордпрессе, используемом в тысячах проектов.
и вордпресс - не единственная цмс-ка с тысячами проектов, где это реализовано именно так.
не задумывался, почему?
...только не говори что создатели вордпресса не знают про чудо-смарти.
да, с одной стороны, абстрагирование дизайна от исполняемого кода - это удобно для дизайнера
с другой стороны, это же лишает гибкости.
про производительность.
хорошая фраза про смарти: "Компиляция шаблонов позволяет достичь производительности
сравнимой с производительностью PHP-шаблонов написанных вручную"
сравнимой! но никак не превышающей
любой шаблонизатор - это дополнительные вычисления. даже если его код скомпилирован.
теперь вернемся к вашему вопросу: почему люди используют то-то а не используют то-то. может потому что не умеют? перефразировать можно так: почему люди используют языки программирования высокого уровня и не используют ассемблер и т.п.? потому что многие не умеют. и хотя прога на асме получится в разы меньшей по размеру файла, и в разы более быстродейственной, программеру впадлу что-то делать в этом плане. ведь всегда можно поставить более быстрый сервак, например. особенно, если у программера руки заточены не под код, а под ... джойстик