Потому что:
fu=function(arg1, arg2){
if(condition1) return arg1()
if(condition2) return arg2()
}
fu(long_calculation1, long_calculation2)
P.S. eval сам по себе
ни для каких оптимизаций не годится, потому что он ломает низкоуровневые механизмы внутренней оптимизации самого движка, что
очень сильно сказывается на скорости.