Using 0 as false and 1 as true has the benefit that + (mod 2) becomes xor and * becomes and.
(or, if instead of mod 2, you use min(1,a + b) to keep things in the set, then + becomes or )
To use 0 as true and 1 as false, you don't get nice things like this. It's not nice.
Well.. I guess * becomes or. But, + (mod 2) becomes, uh, xnor , and (min(1,a+b)) becomes, and...
ok well I guess that's not as bad as I thought.
Still a bad decision imo though.