In our application, we have the requirement to display the DropDownList's filter textBox only if there are more than a specific number of items in the DropDownList. Therefore, we count the items everytime they change (i.e. an item is added/removed or perhaps all items are replaced) and then update the DropDownList's filter setting accordingly via setOptions().
Additionally, we use the dataBound() event for internal UI tweaks and therefore access the e.sender object.
This DOJO demonstrates that e.sender has a different structure before and after setOptions() is called. For instance, the list property does no longer exist. Check the console output, the event object is logged every time dataBound() is called.
Interestingly, this only happens when passing a complete (but updated) object to setOptions() and not when passing only a partial options object. Still, re-setting options to the same value as before should not interfere with any event args.