In TiddlyWiki if you think you need $button widgets, it is because you want to be able to click on something to invoke actions.
As an example imagine a long list generated by a $list widget that creates a button for each list item:
<$list filter="....">
<$button tag="div" class="myclass" actions=<<myactions>> />
</$list>
Alternatively you can do something along these lines, which tells the $eventcatcher to listen for clicks inside DIVs with the class “myclass” and invoke actions in response.
<$eventcatcher $click=<<myactions>> selector="div.myclass">
<$list filter="....">
<div class="myclass" />
</$list>
</$eventcatcher>
Not only is having a bunch of DIVs faster than $button widgets, but this also opens the door to be able to use static pre-rendered lists in some situations.