That is, formerly U+D83D would pass through straight as U+D83D (or possibly be replaced by U+FFFD in some implementations), whereas it is now "encoded" as the sequence U+005C U+0075 U+0044 U+0038 U+0033 U+0044.
That is, the entire point of the "well-formed stringify" proposal[1] was to stop generating broken JSON:
> Rather than return unpaired surrogate code points as single UTF-16 code units, represent them with JSON escape sequences.
[0] it's possible that some implementations would replace the lone surrogate by U+FFFD but according to MDN:
> Before this change JSON.stringify would output lone surrogates if the input contained any lone surrogates; such strings could not be encoded in valid UTF-8 or UTF-16
this is also the behaviour I observe on an old safari, and the one which is quoted in the tc39 proposal[1]:
> JSON.stringify can return strings including code points that have no representation in UTF-8 (specifically, surrogate code points U+D800 through U+DFFF). And contrary to the description of JSON.stringify, such strings are not "in UTF-16" because "isolated UTF-16 code units in the range D800₁₆..DFFF₁₆ are ill-formed" per The Unicode Standard, Version 10.0.0, Section 3.4 at definition D91 and excluded from being "in UTF-16" per definition D89.