hasChanged (Again)

I’ve a transaction group with the following trigger expression:

({NUSTP0x_B_Phase}={txD/LOAD_END}) && ({NUSTP0x_CastNumber} > 0) && hasChanged({NUSTP0x_B_Phase},false)

It will not trigger for me.
However, if I change the order to the following:

hasChanged({NUSTP0x_B_Phase},false) && ({NUSTP0x_B_Phase}={txD/LOAD_END}) && ({NUSTP0x_CastNumber} > 0)

it will trigger.

Note that I’m evaluating the ({NUSTP0x_B_Phase}={txD/LOAD_START}) without hasChanged in another group. (Not sure if this has a bearing on the problem)

I’m getting more and more confused about the action of hasChanged.
My understanding is that if the function is called once from anywhere in ignition, all resulting calls will return false until the tag value actually changes.

Is there something else I should know?
If I’m evaluating a tag for a specific value and also checking if the tag has changed, is this a problem?

Using Version 7.7.4 / SQLBridge 6.7.4 (b2015033012)
Thanks for any help