A while ago I found myself staring for minutes at a command full of functions that didn't behave like I expected.
And this time I was confident that the command was right ... (that doesn't happen very often)
This had to be a bug!

After a break I finally saw the "!" I overlooked all this time in an %@EVAL function.

That led to this function:
function NOT=`%@eval[!%$]`
Not very complicated, but "%@NOT[....]" is harder to overlook than "!"