El problema que tienes es que aunque el checkbox esté desactivado, al acceder a la propiedad "value" te devuelve el valor igual. Tendrías que cambiar la linea de la función para incluir ese caso:
a.valor3.value=parseInt(a.select.value)+parseInt(a .select2.value)+(a.select3.checked?parseInt(a.sele ct3.value):0);
Y creo que así ya funciona