The core parser FSM loop could also be implemented in XS to bring some speeds-ups there. Merge Directive.pm into Parse.yp via template process. An alternate parser back end could generate code which bypasses the stash altogether, based on Doug Steinwand's strategy. The V2 generated Perl code is much faster than V1 but still falls short of what Doug has shown is possible. Nevertheless, compiled V2 templates should easily run twice as fast as under V1.
All magic is intact.
The first example runs much faster and in those cases when you know you haven't got any magical variables, this is a Good Thing.