This discussion was originally about how to handle unpaired surrogates, as if that were a normal use case.
Regardless of what encoding model is used to handle characters under the hood, and regardless of how the Delete key should work with actual characters or clusters, there is never any excuse for software to create unpaired surrogates, or any other sort of invalid code unit sequences. That is like having an image editor that deletes every 128th byte from a JPEG file, and then worrying about how to display the file. -- Doug Ewell | http://ewellic.org | Thornton, CO 🇺🇸