A Plea for Bit-Twiddlers! (please keep ! as logical negation, separate from bitwise negation!)

Special cases? I actually think of it as being a very generic rule, no special cases at all. ! returns a boolean based on the type of the value. That seems very Julian to me. Just like the relational operators can be used with many different types of values, but they always return a boolean value.
Just as if iszero(a) ... works, even if if a doesn’t, so should if !a work.

The problem there is that anybody used to most of the languages in the world expect that ! returns a boolean value, and never anything else (just the Rust people don’t, that I’m aware of so far)

I think that foo ∧= ¬0x00ff would be more likely to be understood, people aren’t used to using those Unicode operators, but they may very well know that they are boolean operations. foo and= not(0x00ff) is also less likely to confuse people coming from the many C-like languages.
(there are many languages that in other aspects are not at all like C, but that follow C’s conventions for logical and bitwise operators, like PHP, Perl, Ruby, or some or most of them, like Python or Rust).