I think the chances of a "byte" object are about as good as the chances of a character object
(though one can always implement such in C extensions, that wouldn't build them into the syntax).
The fact that characters are single-byte strings is responsible for certain anomalies with (e.g.) the __contains__ operator (list elements aren't lists, but string element are strings), but overall the choices made lead to sensible, comprehensible code.