Sì, ne vale la pena.
Mentre PHP è una sorta di linguaggio template, la sintassi è, come avete osservato, maldestra e non aiuta molto la leggibilità. I tag brevi alleviano un po 'la verbosità, ma non appena i condizionali e l'iterazione entrano in gioco, le cose si complicano.
Inoltre, PHP non si occupa dell'output di codifica per te; se fai quanto segue:
<a href="<?= $_GET['some_url'] ?>">Click here!</a>
... quindi ti sei una grossa vulnerabilità XSS; un motore di template appropriato imposta automaticamente la codifica HTML di tutte le variabili che vengono interpolate, a meno che non vengano sovrascritte esplicitamente. Ciò significa che non puoi incappare accidentalmente in questa falla di sicurezza comune.
Con questi due in mente, confronta:
<ul>
<?php foreach ($items as $item): ?>
<li><a href="<?= htmlspecialchars($item['url']) ?>"><?= htmlspecialchars($item['title']) ?></a></li>
<?php endforeach; ?>
</ul>
vs:.
<ul>
{%foreach items as item%}
<li><a href="{item.url}">{item.title}</a></li>
{%end%}
</ul>
Un altro vantaggio, più psicologico che tecnico, è che un motore di template impone (o almeno suggerisce strongmente) di mantenere il codice di presentazione separato dalla logica dell'applicazione.
Una cosa da tenere a mente, però; PHP non era destinato alla scrittura di parser e simili, quindi i motori di template scritti in PHP puro possono essere piuttosto lenti. Alcuni di essi sono implementati in un linguaggio più adatto ed esposti come moduli PHP; puoi anche trovare altri che possono essere compilati con PHP raw, che, una volta compilato, può essere chiamato direttamente.