Bo eliminacja PHP z szablonów nie jest celem systemów szablonów. Ich celem jest oddzielenie prezentacji danych w formacie HTML od pozostałej części aplikacji a to, w jakim języku sobie tę prezentację zaklepiesz, nie ma już dla samej idei żadnego znaczenia - ostatecznie istnieje przecież sporo systemów szablonów, które wykorzystują PHP do ich pisania.
Po co separować: aby zwiększyć niezawodność i poprawić podatność na modyfikacje. Kod HTML to zazwyczaj najczęściej poddawany przeróbkom element kodu, zwłaszcza w końcowej fazie tworzenia projektów, gdzie klienci często chcą, by im coś zamienić miejscami, albo gdzieś dodać gwiazdkę. Czemu masz ryzykować przy tej okazji rozwalenie jakiegoś algorytmu przetwarzania danych? Ponadto możesz zmienić szatę graficzną bez przepisywania całego kodu na nowo - wystarczy, że napiszesz nowe szablony. Poprawia to także ogólną czytelność kodu; mi osobiście dużo wygodniej pisze się kod systemu, gdy nie plączą mi się wokół znaczniki HTML, tylko całe wyświetlanie mam obsłużone w oddzielnej warstwie.
Tak więc nie mów, że one utrudniają życie, bo korzystają z nich niemal wszyscy poważni programiści nawet, jeśli się do tego nie przyznają. To, co napisałeś, że system szablonów = oddzielny język, to jedna z największych bzdur, jakie można wygłosić na temat tego typu bibliotek.
Natomiast co do samych języków szablonów - stworzyć
dobry język do tworzenia szablonów jest cholernie trudno, dlatego primo mało jest systemów szablonów, które realizują to przyzwoicie, a secundo - ponieważ dużo systemów ma ten element skopany, wielu programistów ich nie lubi. We frameworkach idzie się najczęściej po najmniejszej linii oporu i wstawia system oparty o szablony PHP, głównie dlatego, że autorzy mają na głowie cały framework i po prostu nie mają czasu, by siedzieć i dobrze opracowywać tylko ten konkretny element. Nie da się jednoznacznie wskazać, który wybór jest lepszy, ponieważ nie mamy obiektywnej miary do porównań. Na pewno mogę powiedzieć, że używanie systemów szablonów, które reimplementują PHP (np. Smarty) mija się z celem z kilku powodów:
- Taki język to najczęściej podzbiór PHP, czyli posiada jedynie część funkcjonalności PHP.
- To, co da się zrobić w takim Smartym, da się zazwyczaj dokładnie tak samo zakodować w PHP, czyli poza zmianą składni nic nie zyskujemy.
- Ale to, co da się zakodować prosto w PHP, a jest przydatne w szablonach, nie zawsze da się prosto zrobić w Smartym.
- Czasami autorzy w dodatku wprowadzają jakąś ezoteryczną składnię (np. modyfikatory Smarty'ego - po kija to jest, kiedy cały świat używa i rozumie zapis
funkcja(argumenty)?!)
W przypadku prostych systemów szablonów, których autorzy argumentują, że "nie potrzebują takiej kobyły", powstają jeszcze większe paradoksy, bo język jest tak okrojony, że wykłada się na najprostszych problemach

.
Należy być świadomym, że PHP samo w sobie też nie jest idealne. Każdy język posiada wady, PHP również. Przede wszystkim odniosę się do argumentu o konieczności "uczenia się", który też swoją drogą jest kompletnym bezsensem. Aby PHP dało się znośnie używać przy tworzeniu szablonów, (bo język sam w sobie jest goły, jak mysz kościelna) musisz do niego dodać kupę rozmaitych helperów, które nierzadko są ekstremalnie wręcz skomplikowane, jeśli chodzi o konfigurowanie i dostosowywanie ich do swoich potrzeb (ciężka obiektówka, złożone wzorce projektowe i te sprawy). Ich też się trzeba nauczyć. Dla mnie osobiście jest on bardzo mało elastyczny, jeśli chodzi o generowanie kodu HTML i wybitnie nieczytelny, zwłaszcza gdy się próbuje coś bardziej skomplikowanego zrobić.
Moje zdanie jest takie, że jak już tworzyć nowy język, to naprawdę z pomysłem, by to rzeczywiście było coś innego, niż "PHP w klamerkach", prezentującego inną filozofię projektowania szablonów, rozwiązywania określonych problemów itd. A jakie konkretnie podejście Ci bardziej spasuje, to już musisz sam sprawdzić.