Worrying about the difference between [!= 1] and [== 0] when you're passing messages through patch cords is like putting air conditioning on in the house while all the doors and windows are open. And you've got the radiators running.
Message lookup with patch cords uses hundreds, if not thousands, of times more CPU than simple logical comparisons.
If you're worried about CPU (which you should not be until you've got your logic working), either of your two single-box "logic" comparisions will be best—the other solutions are, frankly, on the Rube-Goldbergish side (for those outside the US, Heath Robinson, Jean Tinguely, Storm P, chindōgu, etc.).
If you're worried that you may need to update a potentially expensive logic decision, wrap it into an abstraction. Abstractions are cheap at run time (although they take a little longer to load when you open a file).