The rule isn't exactly that: the rule is if an object type is not referenced (no conditions even mention it) then it stays in "all picked" mode, and expressions return for the first instance.
If you add a condition in an OR block that no instances meet, it is referenced, so the rule does not apply. And it results in no instances picked, so there are 0 picked instances, and therefore nothing to get expressions from.
It is a bit confusing, but the event system is working normally here (as far as I can tell). The question is should it work differently for this case, and if so how and why?