I'm just pulling your leg.

As I said I agree that it would make more sense if @ERROR was actually returning an error rather than the result value.

The problem is that because it has never worked this way changing the @ERROR value will break existing scripts.

Although it has caught you out AFAIK you are the first person, so it is a very rare event. In fact you might be the first person to have ever checked for a (real) error condition following a MessageBox()!

I guess the question becomes "Is it better to change the action to something more compliant and break backwards compatibility, or is it better to leave it as-is and accept that you cannot check for an error"

I'm fairly neutral on this one, though I'd normally advise against introducing unnecessary compatibility issues.