What are you trying to proove? THat you still do not use the filter function in the described fashion?
0 is no expression
xxxxx is no expression
yyyyy is no expression
Just a quick edit: "0 OR 0" is still true as the filter expects a string input. And the character "0" has the ASCII code 48 (I think) - so it does not equal zero and the result is computed from a TRUE OR TRUE calculation - and shows all files just as you found out.
Any other string (like any xxxxx or yyyyy) does also not equal zero but has a value well above zero.
So in logical terms
NOT xxxxxx OR yyyyyy
translates to
NOT TRUE OR TRUE
which means "show all tracks that are true or not true" which I think is a longish way of saying "all" - just as you found out.
The only way way to get a binary zero into the filter field is by using an expression as described in online help.
It is a nice side-effekt that a single word acts like the filter operator "HAS". See this a feature but don't see the other behaviour as a bug. As soon as you want to have anything more elaborate than just this fixed string, you have to use the filter expressions.