Why does a System.Boolean take 4 bytes? It just stores one state, either true or false, which could be stored in less space than 4 bytes.
I think it's only for performance, 32 bit values are much more efficient to manipulate.