if we just eval the expression, the we are not going to update the switch should the result of the ngSwitchWhen expression change while the result of expression ngSwitch remains the same. Is this the right behavior?

I'm not sure myself...