manipulating floats is a lot faster than integer types in this case. suppose you want to multiply two colors with floats you can do just that multiply them, with bytes you'll need to convert them to floats, multiply and convert them back.
also 12 bytes per vertex is not a major loss, since every attachment only has 4 vertices=)