As far as I can understand now widgetInTemplate support in dojox.dtl is very limited because you can't have dtl tags in a widget.
This way its usefulness is very limited.
What I would like to have is something that can support templates like this
this
and even this
<script type='dojo/connect' event='onClick' args='e'>
doSomething("{{ item }}");
</script>
</button></li><!--{% endfor %}--></ul>
I hacked something to do this in dojox.dtl based on 1.0 version (if I remember correctly).
Base principle was:
first render template without warring about dojoType
then instantiate widgets on rendered nodes
Some problems comes with need of destroy and then re-instantiate when there are changes in tags internal to a widget; some problems comes with text substitutions in <script>...</script> under explorer (see Ticket #5121); but can all be solved and I think we can have a great enhancement.
In version 1.0 I hacked something that works, not perfectly clean, in much more complex cases than examples above but I haven't the dojox.dtl knowledge to transform it in a clean patch, especially after recent changes.
If someone is interested in merging it I can post my old code and try to help.

An overview of the possible solution
So this is an extremely complicated problem.
First of all, we have to understand that there's a real problem here: The widget you're using in your dojoType might also be a DTL widget.
I think the best way to deal with this is to think of the node as an "include". If we look at something like the ssi tag, we see the concept of including some HTML as either parsed or unparsed. The same idea should be considered here. I would say that what we probably want to use here is dojoType="dijit.form.Button parsed".
The current dojoType gets the node, pulled from DOM. If the node is to be parsed as a template, we wrap the node in an HtmlTemplate, stick it in a hidden div somewhere on the page, render it, and then use a clone of the results to instantiate our widget.
I think pottedmeat's idea is the way to go
A little idea for problem 3
Before render HtmlTemplate derived from dojoType node we could connect a function that increment a changesCounter on any change event (I don't know if all changes has an event to track it).
After HtmlTemplate derived from dojoType node is rendered if changesCounter>0 we can destroy the widget and re-instantiate it from a clone of rendered node, otherwise we do nothing.
A proposal to realize the enhancement
I've created Ticket #5950 for add this enhancement and submit a patch that is not perfect but works and realize about all the functionality (not delayed widget startup).
I've submitted a patch for demo to demonstrate enhancement's new functionality.
As far as I know my Ticket 5121 patch and Ticket 5949 patch are needed for full support.
Let me know if you think this could be a good solution.
Thanks,
Alessandro
New patchs with substantial improvements
New Ticket #5949 patch has substantial improvements:
New Ticket #5121 patch solve a bug I've found in previous version.
Tested on IE6, FF, Opera and Safari.