You can't send strings to for instance write or Image.JPEG.decode if they aren't 8-bit already.
In the case of Image.JPEG.decode it's because the decoding is defined for an octet stream only, of course. In the case of write, or the other generic I/O functions, it's because there's no universally accepted way to write wide chars.