I agree with the general thrust of Brad's points. There are some known major issues with templating (styling, unreadable parser functions, and templates being used for data like Information on Commons are the most important ones).
However, these do not all have the same solutions. Some issues are in a bit stalled but the idea is known (e.g. https://www.mediawiki.org/wiki/Requests_for_comment/Allow_styling_in_templat...). Others have an understood solution (e.g. Wikidata for meta-data of the sort used on Commons).
Finally, I consider the "unreadable parser functions" problem essentially solved. Lua is not perfect, but it's a usable language (and not a Mediawiki-specific one) that is far more readable and writable than complicated nested parser functions.
I think we should standardize on JavaScript (for interactivity) and Scribunto (for business logic that supports templates) as the on-wiki languages for non-trivial logic, leaving the wikitext template side for simple presentation.
Matt Flaschen