I think this is always the case. Getting coding tips for those kinda things as well.(notes while typing code)
It does then actually say it will always return true or false for example.
Not sure 100% why you cannot do length, but it is not a bug.
I think where the bug is is the fact that when you execute directly from the node it returns the correct result, but when you execute from the beginning of the workflow, it returns the wrong result (in spite of the fact that both values show as ‘true’) - that does seem like a bug to me.
However I can confirm my workaround definitely works. I wil probably continue to use the ‘if exists’ method vs the zero-length method.