> A good compiler should be able to set all the values with one load operations.
Hm? I believe that might actually be entirely wrong for many pieces of actual hardware that I've worked with. Setting a single bit may change the interpretation of a subsequently set bit, so you can't really "batch" the updates.
(I'm happy for you if this isn't an issue you've faced. We did. Feel sorry for us.)