I had been thinking about this for a time. My idea was setting a <div around the template (easy) and then make the {{/lang}} links 'special' (need to be done with JS), so they show the target on its parent div (not the first div, but the template div). However, as templates have parameters, the would need to be isolated on the parsed html to be reused by the js. And doing the template rendering with AJAX, wouldn't hit the caches, so server admins wouldn't be exactly happy with that extra load.
As you mention it, extra-hacking would be needed to make it work with transclusions (js not available, different domain: ajax not working...).
Platonides