Is CHAR_BIT ever > 8?
TMS320C28x DSP from Texas Instruments has a byte with 16 bits.
Documentation for the compiler specifies CHAR_BIT
as 16 on page 101.
This appears to be a modern processor (currently being sold), compilers supporting C99 and C++03.
Another example is Analog Devices' SHARC processor family.
Its C implementation, CrossCore Embedded Studio, has CHAR_BIT == 32
and claims to provide freestanding C99 and C++11 conformance.
Analog Devices' SHARC DSP was already mentioned (CHAR_BIT==32). Let me add that recent SHARC+ cores (I use ADSP-SC589 and CCES toolchain) can run apps written in two modes: CHAR_BIT == 8 or CHAR_BIT == 32. You can even mix'n'match the two modes together in one app. Although I would not recommend this for development in general, I find it useful when porting code.