The answer is that all transmission by way of socket and serial is all done in bytes. You can't send 1bit of a byte and a bool is pretty much a bit with a parity value. So a byte is going to be sent no matter what it is.
Since a bool is translated to 0 or 1+ then you already have a a usable if statement with a byte or number.
if( number ) is 1+
or
if( !number ) is 0
A byte also values of 256 possible results. Since the minimal data is a byte spending the extra effort to typecast a byte to a limited use of a bool seems redundant when the developer can check against it themself. If you really need it you can typecast the input of byte to a bool on the change of the byte value.