So wouldn't that imply that the fix should be in uniscribe and not richedit?
I think they are separated but very similar issues (at least for my previous fallback implementation for richedit, that approach was inspired by Wine's current uniscribe actually.) The fallback mechanism in uniscribe only makes an effect on ScriptStringAnalyse(), but I didn't use it for fallback in richedit, I used ScriptItemizeOpenType()/ScriptShapeOpenType()/ScriptPlaceOpenType() directly. So improvement for uniscribe won't make my previous fallback implementation for richedit better.