in order to evaluate a heavy calc only once on a layout object that can be hidden or conditionally formatted, here is what I do.
In the Hide condition, supposed to be evaluated first, I use the Let function to declare variables.
For instance :
$condition = myHeavyCalc ;
not $condition // the object is hidden if $condition is empty or 0
and in conditional formatting
condition 1: $condition > 50 --> orange
condition 2: $condition > 80 --> red
so in total, I saved 2 evaluations of myHeavyCalc
Works fine in Pro/Go
But in WebDirect, it seems conditional formatting is evaluated before the hide condition, which leads me to seeing the object conditionally formatted, depending on the data from the last visited record.