Использую Smarty из-за его возможности поиска шаблонов. Что позволяет не меняя всего шаблона делать его форки через директории $templateDirFork, $templateDirMain. т.е. только не найдя шаблона в $templateDirFork, Smarty лезет в $templateDirMain.
Сейчас нашел в описании Twig возможность:
$loader = new Twig_Loader_Filesystem(array($templateDir1, $templateDir2));
При такой конфигурации Twig будет сначала искать шаблоны в $templateDir1 и если они не существуют, и он будет искать их в $templateDir2.
Нужно будет попробовать Twig =)