I believe that Hascript evaluates the expression twice because boolean is treated in a special way (first checking boolean condition for reusing it in the perform-logic and then 2nd resolving it into a string value for the xml attribute)