Can I first make a plea for the use of Local variables in any examples? Yes, I know this macro nukes the variables at the end -- but what if one of your variable names matches one of mine, a variable that I wanted to persist?
Secondly -- isn't this just a special case of indirection? You can easily -- and much more explicitly -- do what you want with

Yes, it's an extra action (Oh noes, a whole extra millisecond per loop!
) but I'd argue it is much more readable and -- importantly -- it works with the Debugger. You can step through and see how Local_discountLevel is constructed and applied, whereas the CALCULATE() function is a black box.
The only advantage I can see is that CALCULATE() etc will instantly dereference through multiple (unknown at build time) levels -- while that could come in handy in very special cases, it's more likely a sign that the macro needs refactoring.
While I'm all for neat tricks -- especially when, as here and in the original thread, they provoke useful discussion about the inner workings of KM, if they don't offer anything over "standard" actions then they are just tricks...