The recommended approach when reinitializing a widget is to destroy
it first so that it can be properly disposed e.g.
As for the dataBound event - an event that is triggered after all nodes have been rendered is not currently available. With the code that you provided for the dataBound event, the logic will indeed be executed only once but it will actually be in the first invocation and not the last. The node event argument will not be defined only when binding the top level items which do not have a parent node. I the logic should be executed after all nodes have been rendered then you will need to check if there are any leaf nodes that have children before executing the code.
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI