We do not, yet. We hope at some point to have some tools to automatically flag improper nesting in templates.
https://www.mediawiki.org/wiki/Parsoid/limitations [1] and https://www.mediawiki.org/wiki/Parsoid/Broken_wikitext_tar_pit [2] provide some guidelines.
But basically: if templates open a new HTML element, they should also close it. The most common 'broken' template types have separate templates, one of which starts a table, and the other one closes the table. This is very hard to express in an tree-structured DOM, and complicates DOM fixup after templates are updated.
--scott
Didn't read the whole discussion but wnat to say that if you make a single template for some tasks you end up with writing {{Template|1= ... text ... }} - because if text contains '=' then it is splitted on it and the first part is taken as the template name. And this is not to mention vertical bar character (|) which is """escaped""" as {{!}}. Not very convenient )