Why should it? There are systems where "char" isn't 8 bits... Or were, decades ago, and the C standard people latch onto this technicality like a bear trap and refuse to let go.
It plainly doesn't assume it stops at 8 bits, anyway, so the question's kind of pointless.
I think what is happening with your code is that the compiler is reading the \x62cd as one hex number - \xbcd. I would guess that Corona688's suggestion - printf("a%ccd", 0x62) - is your best bet.
achenle - unicode or utf-16 or whatever else - have been around for a long time. They are not considered 'char' in C, they are wchar, wide characters, a different datatype. This datatype affects file orientation, which is the primary way reads & writes occur on tyy/file/device(s). wchar are NOT char, by definition and practice
try man wchar
And there still are embedded systems with 32 bit char.
"Annoyingly pedantic" is a decent description of a few corner cases in C like this. Assumptions people make about their machine (char == 8 bits) don't square perfectly with C's model of it.