When setValue(0) method is called, combo will set its value to an empty item (first item in ArrayStore). This happens because JavaScript is weakly typed and comparison like 0 == '' will return true.
To overcome this issue I had to override findRecord method in ComboBox with code below:

You could use strict equivalance (===), but that ~still~ won't solve your problem, because '' nor '0' === 0. At this point it's probably not likely we'll fix this, you should pass in the appropriate value for your store to ensure that you get an appropriate match.