why is double negation useful in shiftOut for example?

It places the logical value in bit zero, which is where HIGH and LOW are currently defined.