Comment by slavik81
The Python language developers themselves thought that their code only needed to operate on str and later realized that it needed to handle arbitrary bytes.
It's a common mistake. A lot of code was written using str despite users needing it to operate on UnicodeWithBullshit. PEP 383 was a necessary escape hatch to fix countless broken programs.