Yo utilizo todo el tiempo campos de bits, para microcontroladores, y en mi experiencia, son poco portables y según sé, el orden de almacenamiento no está definido en un estándar (corríjanme si me equivoco).
Normalmente, en los compiladores que he usado, siempre debo definir en que orden se acomodarán los bits. Cuando se trata de variables que sólo yo utilizo en el programa no hay problema y de hecho, en esos casos sí los utilizo, pero cuando se trata de bitfields relacionados con algún puerto del microcontrolador, o flags de configuracion, u otras variables utilizadas por mi circuito, no verificar esto, resulta fatídico.
Cita: si puedes usar otra cosa que no sean campos de bits, te lo recomendaría
En ese sentido coincido con MaxExtreme. Por lo menos para las operaciones donde la portabilidad o la dependencia con el hardware son un problema, en mi opinión es preferible utilizar bitmasks y operaciones binarias que bitfields.