У меня есть другое предложение, это не 100%, но почти:
<select onchange="valueChanged(this.value); this.selectedindex = -1">
<option style="display: none"></option>
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
<option value="4"> 4 </option>
</select>
Таким образом, событие будет запущено, даже если пользователь дважды выбирает одну и ту же опцию. Сцепкой является то, что IE отобразит пустой параметр (он игнорирует атрибут стиля), но нажатие на него не запускает событие, так как оно всегда начинается с выбора, и поэтому его выбор не запускается onchange ...