I'm on the fence when it comes to templating. My first instinct is to say that presentation layers should only wory about presentation. i.e., where bits should go and how they should look. Everything else should be code, because it involves data processing and non-presentation logic. Thus, one does not have to work in two (or more!) distinct programming languages and deal with the inevitable impedence mismatches that result. So by this argument, template languages should be a fancy syntax for nothing more than simple string concatination and replacement engines.
However, the flaw in this seems to be that many people view a templating language as a vehicle for non-programmers to act like programmers without getting into too much trouble when they make mistakes. So this mind set uses wants template languages to be a way of adding safe, managed code to projects by potentially unsafe developers.
And down that path seems to be maddness.