Во вложении - текстовый файл letters.txt в кодировке UTF-8. По хорошему текст должен отображаться так:

Но в некоторых программах он отображается неправильно:

Поясняю. Здесь две открытые буквы "о" - маленькая и заглавная. На каждую поставлены по два комбинированных (combining) диакритика - тильда (tilde) и ударение вверх (acute). Для тех, кто не знает: комбинированные символы это такие символы, которые в памяти занимают место как обычный символ, но на экране стоят на месте предыдущего символа, т.е. каретка при этом не передвигается вправо. В данном случае, каждая буква (или знако-место), фактически состоит из трех отдельных символов.
Я не знаю, что тут тупит, ОС, шрифт или конкретное приложение, но, по-хорошему, когда добавляешь комбинированный диакритик, то ОС, шрифт или само приложение, или что-то еще, я не знаю, должно учитывать, что если это заглавная буква, то диакритик должен помещаться выше, чем при маленькой букве. Если добавляешь второй диакритик, то он должен помещаться над первым и т.д. Здесь же видно, что что-то (хочу выянить, что именно) тупо помещает диакритики на одной высоте. Я испытал несколько программ, которые смог достать. Проще было бы свести их в таблице, но не знаю, как на этом форуме ей пользоваться.
LinuxПравильно: Gedit, Tomboy, KWord, KNotes
Неправильно: LibreOffice, Geany, Gnome-terminal, Konsole, KWrite, Konqueror
WindowsПравильно: Word, Publisher
Неправильно: Блокнот, WordPad
MacПравильно: TextEdit, Firefox, Chrome, Evernote, Safari
Неправильно: LibreOffice, TextWrangler, Thunderbird, Pages (последнее особенно огорчило)
Недавно еще слышал про подобную проблему со Scribus, но у меня его нет, поэтому не знаю, там то же самое, или что-то другое.
Как я понял, это зависит не от ОС, т.к. на всех есть как правильные, так и не правильные отображения. От шрифта тоже не зависит. Я пробовал разные шрифты, естественно, нужен пропорциональный (Konsole не дал даже такого выбора; там только три моноширных).
Выходит, это завивит от приложения? Но что это значит? Должен ли заботиться об этом программист приложения? Не должно ли это быть присуще языку, на котором разрабатывается приложение?
Скажем, LibreOffice написан на Java. Что, теперь во всех Java-приложениях будет такой нежелательный эффект? А Windows? У них, вроде бы, все свое, а все равно, есть и "умные" и "тупые" приложения.
Кто-нибудь может пролить свет на это явление, и если не объяснить, как с этим бороться, хотя бы объянить причину?