Ich benutze ebenfalls eval() für meine Templates aus Performancegründen. Allerdings wird der komplettte Code von meiner Template-Engine generiert und es kann nirgendwo direkt PHP Code eingeschleust werden (Es sei denn, jemand verändert die gecachten Templatedateien, dann liegt allerdings beim System grundsätzlich was falsch )
Die möglicherweise sicherere Alternative ist in der Tat, alles über Objekte und Methoden zu regeln, dann kann auch nirgendwo PHP-Code eingeschleust werden - aber soweit ich weiß, ist ist OOP in PHP recht langsam...
Ein Beispiel für eine Sicherheitslücke in deinen Templates, wäre sowas:
Allerdings ist das ungetestet und inwiefern man etwas schlimmes damit anstellen kann ist unklar