I suspect this is "by design". The problem, I think, is that there is no unique meaning to "the current value of the formula being calculated" in any but the simplest of cases. If your formula is evaluated from left to right, the first part will indeed have been determined as 180. But then this result will have been held in suspension whilst the value of the MOD() function reference - and in particular of its first argument - is calculated. In your first example, for instance, when CURRENT() is encountered, there will be two current values, neither of which can be described as the value of the formula, namely the 180 and now 25 as part of the new calculation. CURRENT() clearly uses this new value - the value of the sub-expression currently being evaluated - and not the value in suspension.
In the third example, there is no value yet for the new sub-expression, and CURRENT() defaults to the existing value of 180. I think you like this, but I'm not sure it's helpful. You might be amused by examining the effect of
=MOD(CURRENT()+25-6;14)
or just
=CURRENT()
I suspect you need either not to worry about the extra calculation done if you repeat (A2+5)*6 explicitly within your formula or else to calculate it separately in a cell and then use a reference to that cell twice in your formula. Remember that the necessary cell can be in a hidden column or row or outside the print range or on another sheet, as preferred. CURRENT() is meant for other purposes.
I trust this helps.
Brian Barker