The current JSON spec mandates UTF-8, but practically speaking encoding is a higher-level concept. I suspect there are many server implementations that will respect the Content-Encoding header in a POST request containing JSON.
JSON itself allows putting sequences of escape characters in the string that don’t unescape to valid Unicode. That’s fine, because the strings aren’t required to represent any particular encoding: it’s up to a layer higher than JSON to be opinionated about that.
I wouldn’t want my shell’s pipeline buffers to reject data it doesn’t like, why should a JSON serializer?
Unicode validation/cleanup should be done separately because it's needed in multiple places, not just JSON.