The benefit of doing it this way is that WYSIWYG editors can render page templates. Designers can edit your page templates easily, and you don’t have to worry about outside tools messing up your templates. You can also use HTML elements as your structure.
To be honest, though, I really haven’t found a bad templating language yet. Velocity, HTML::Template, Smarty, whatever — these languages have a very low bar of functionality to jump over to do everything I need. Can you replace markers? Can you iterate a collection? Can I define custom functions? Great, you’ll work.