[1] https://r12a.github.io/scripts/gujarati/gu.html
[2] https://ltr.wtf/explained/bidiintro.html#selections
[3] https://en.wikipedia.org/wiki/File:IME_demonstratie_-_Matsuo...
It's the whole concept that is problematic.
Unicode mixes way to many concepts in an unholy way. The result is insanity.
The original sin is of course that content and appearance / layout aren't strictly separated.
The whole idea that a text format should be "typewriter compatible" is also a huge part of the problem.
Human script is way too complex that one could pretend that a typewriter abstraction would suffice. But Unicode tries hard to keep this leaky abstraction (because "backwards compatibility"; even it's actually not compatible in all kinds of "corner cases", BIDI being only one). The result is the dumpster fire we've got (and that we likely never ever will get rid of, as it's "good enough" for the majority; I mean as long as you're using European scripts, and no scientific notation, math, and such…).
ASCII was sane (give or take minor annoyances like hexadecimal digits or DEL); the problem was it was too narrowly scoped for general-purpose use. In the context it was actually developed for (exclusively English text on machines that struggled (or didn't bother) to even render 256 different characters, nevermind thousands), ASCII was a broadly-reasonable character encoding that even had half the encoding space left over for something like UTF-8 to build a sensible, more general-purpose encoding in.
Unfortunately, we got specifically UTF-8, with the dumpster fire that is Unicode tied around its neck like a string of albatrosses.