Und genau das ist der allgemeine Gedankenfehler:
Ohne CCSID schafft man sich komplexe Umgebungen die man mit CCSID gar nicht hätte.
99,9% aller Datenverarbeitungen sind mit CCSID absolut unproblematisch.
Die restlichen 0,1% treten aber nur dann auf, wenn man sich in mehreren Sprachräumen aufhält, also west-/osteuropa, russisch, griechisch, türkisch, usw.
Dafür hat man dann Unicode erfunden. Zunächst graphic 33488, später dann 1200 und für die IFS-Unterstützung 1208.

Baut man ein System grundsätzlich mit CCSID's auf hat man von der Source-Editierung bis zur Laufzeit wirklich keine Probleme, solange man auch keine varianten Zeichen als Programmkonstanten einbaut.
Ihr macht es auch "zu einfach", nämlich gedankenlos, und damt eben einfach und kompliziert.

Wie wärs einfach mal mit einfach und unkompliziert?

Das Thema CCSID behandle ich bereits seit 1992 und meinen ersten Kontakten zur AS/400.
In früheren Welten (Nixdorf Computer, MS DOS) nannte man das nur Codepage, aber auch da gab es bereits Lösungen.

Ich kann mich noch an komplexe Konvertierungen in der früheren DCW-Fibu erinnern. Hier wurden Codeconvertierungen ausprogrammiert, CHRID's von Terminals abgefragt und die CCSID im Datensatz gespeichert. Auch damals hätte man sich vieles einfach ersparen können, wären die Systeme mit einer CCSID eingestellt worden.