Thanks for the info Georgi.
I think I found out what the underlying problem was (for us). When the ComboBox starts out, is has no value (no selection). In terms of the widget DOM, the "selectedIndex" attribute of the combo's <select> equals -1.
When we load in some new data, using the DataSource.data() method for example, that fires the change event, which calls the refresh() method on the ComboBox. That internally calls kendo.ui.Select._options, passing in the new data, and it populates the option elements for the select. The last line of that method, however, changes the selectedIndex property to zero.
element.selectedIndex = selectedIndex === -1 ? 0 : selectedIndex;
This causes the refresh() method to put the text of the first option into the text box, because _selectItem uses "that._accessor()" to pull the value out of the first <option> element.
So the problem is that the ComboBox is changing the value as part of loading data/refresh. Why does the selectedIndex get changed from -1 to zero?