> There are 2 special characters, u+e000 and u+e001, each one has a
> display-table setting to display it as something else, then there's an
> empty overlay with an after-string made of these special characters
> that has a display property with :align-to, followed by an image...
> And I'm not sure I listed all of the "features". (The 'cursor'
> property I omitted intentionally, because I believe I know why they
> are needed.) Why each one of these is needed?
At least some of that is cruft, as at one point I was trying to support all of v22, v23, and v24, and there were various differences in the behavior of overlay-strings (as well as the 'cursor property) among those versions. I'll try to simplify the implementation and see if I can come up with something that doesn't trigger any UB in the display engine.