kendo.bind() binds the element and all child elements to the viewModel by calling bindElement.
bindElement calls first unbindElement so that works fine if you call kendo.bind() multiple times, e.g. when you want to bind another model to your markup.
But bindElement also creates widgets if an element has a data-role attribute.
unbindElement on the otherhand does not
destroy the element. So bindElement will again create the widget when you call kendo.bind() a second time. Should there not be a check if the widget is already created?
1) In the bindElement (or somewhere deeper) should bet checked if the widget is already created and if so do not create again
2) Add a parameter to kendo.unbind() to optionally destroy the widgets.
a) This would be a perfect oppertunity to destroy dom elements like the popup of a dropdownlist ( see http://www.kendoui.com/forums/ui/dropdownlist/how-to-clean-up-dropdownlist-lists.aspx#1991068
b) By making it optional you have the oppertinity to keep all your widgets and just only bind a new (view)model to your markup.