Me encanta jugar, viendo distintas formas de resolver el mismo problema es cuando realmente se aprende y mejora uno. Pero ¿por qué dices que he cambiado las reglas unilateralmente? No entiendo.
En cuanto a los else, yo creo que no se computan. A nivel ensamblador, el THEN de un IF es una instrucción de tipo salto. El "ELSE" no tiene correspondencia, porque simplemente el THEN o salta a una línea posterior (el código contenido en el THEN), o no salta. Si no salta, ejecuta la siguiente línea, que es el contenido del ELSE. En resumen, no tiene ningún coste computacional.
Y por último, ¿por qué no ver en vivo lo que tarda cada código en ejecutarse? hay una preciosa herramienta pensada para comprobar códigos. El número que devuelve indica la cantidad de veces por segundo que puede ejecutarse ese código. Es decir, cuanto más alto, tanto mejor.
http://jsperf.com/if-test-forosdelweb
(Usando Firefox 12)
27,370 (código con for) VS 1,102,097 (2 condicionales)
El coste de recorrer un for es muy costoso.
Usando tu primera solución, la diferencia es mínima (las comparaciones booleanas se ejecutan muy rápido, se pierde mucho más tiempo en la llamada a la función "calcula"), pero el código de los 2 comparaciones, es ligeramente más rápido.
http://jsperf.com/if-test2-forosdelweb