Bitfields, por que a implementação é específica?

Os campos de bits C / C ++ parecem ter muita aplicação em drivers de hardware e transferências de rede binárias. No entanto, eles não parecem ser amplamente utilizados e são geralmente desencorajados, porque o layout binário real é específico da implementação, como visto nesta citação do padrão C99 6.7.2.1/10 - "Especificadores de estrutura e união";

Uma implementação pode alocar qualquer unidade de armazenamento endereçável grande o suficiente para manter um campo de bits. Se houver espaço suficiente, um campo de bits que segue imediatamente outro campo de bits em uma estrutura deve ser empacotado em bits adjacentes da mesma unidade. Se houver espaço insuficiente, se um campo de bits que não se encaixa é colocado na unidade seguinte ou sobrepõe-se a unidades adjacentes é definido pela implementação. A ordem de alocação de campos de bits dentro de uma unidade (ordem alta para ordem baixa ou ordem baixa para ordem alta) é definida pela implementação. O alinhamento da unidade de armazenamento endereçável não é especificado.

Minha pergunta é bastante simples; Por que o comitê decidiu deixar os campos de bits como algo específico de implementação e, assim, torná-lo um construtor de compilador, que pode ser usado principalmente para uso reduzido de memória, onde ele poderia ser usado em muitos casos para fornecer layouts binários agradáveis ​​e livre desenvolvedores de código bit-fiddling?

questionAnswers(1)

yourAnswerToTheQuestion