The conclusion we came to is that we need a new kind of construct,
tentatively called a "subtemplate". Subtemplates accept parameters and
have full control over the variable namespace, including the "template"
variable.

I'm swinging round to the ideas behind this proposal having initially been
against it.
What's the status of implementation?