Come appunto citato sopra, li usi di continuo in tutto l'embedded basso livello, specie nei driver.
Tutti i registri di qualsiasi controller sono organizzati in bit o bitfields di piu bit. Nel codice dei driver troverai sempre cose come
#define REG_BLABLA
#define REG_BLABLA_EN BIT(0) /* come dire (1 << 0) */
#define REG_BLABLA_STOP BIT(1) /* come dire (1 << 1) */
etc
if (REG_BLABLA & REG_BLABLA_EN)
fai qualcosa
Anche registri speciali di svariate archietture sono organizzati in bit, ma anche campi di protocolli di rete e di molte altre cose.
Esempi reali, il kernel linux ad esempio, 99% C, bitfields ovunque.
Per altro, sono spesso tradotti in istruzioni or o and che pesano poco, 1 ciclo di clock amche nei cisc, quindi performanti appunto in codec o algoritmi vari.