well, i can not see why one should use macro's, or secret codes, or any other tricks to do what the digitalWrite() function should do anyway.
where is the logic in it then? if we do direct port manipulation, then digitalWrite() is completely useless (it is bigger and slower anyway),
on the other hand, if for any reasons we want a digitalWrite(), it should do all 3 useful bit manipulations (and, or, xor)
as for backwards compatibility:
this thing: "any non-zero value causes a 1 to be written"
looks seriously wrong anyway...