JSON ist eine Bytesequenz. Verwendungszweck: Datentransport, Datenspeicherung (IO). Ein internes Format betreff Kodierung von Zeichen hat damit überhaupt nichts zu tun, das ist eine interne Angelegenheit.
Idealerweise schon, in der Praxis nicht ganz. JSON ist wie gesagt eine Untermenge von JavaScript und an ECMAScript 3 gebunden. Damit "erbt" JSON auch die Einschränkung dass Zeichen, die nicht mit \uXXXX ausgedrückt werden können mit surrogate pairs "umschrieben" werden. Das kommt daher dass intern UTF-16 zur Kodierung verwendet wird. Das ist zwar eine "interne Angelegenheit" aber die hat hier nach außen hin Folgen.
Nikolas