Efectivamente el problema que dices surge, pero sólo cuando SIN ESTAR EXPANDIDO mueves los cursores o pulsas una letra que coincide con el primer carácter de alguna opción.
Sin embargo, si cada vez que se va a seleccionar se expande primero la lista con <alt><flecha abajo> no hay problema usando los cursores, y el onchange sólo ocurrirá cuando se pulsa <enter>
Código:
<HTML>
<HEAD>
<script language="javaScript">
function prueba(obj)
{
alert( obj.value );
}
</script>
</HEAD>
<BODY>
<select onchange="prueba(this)">
<option value="111">opcion 1</option>
<option value="222">opcion 2</option>
<option value="333">opcion 3</option>
</select>
</BODY>
</HTML>