The If()
statement in the expression language is a function rather than a true conditional statement. Meaning both the TRUE and the FALSE values must be computed when it is called.
At the moment the only way around this would be to add a Max
function into the FALSE argument:
If(a=0, 0, r / Max(a, 1))