Alright, problem solved. As so many times, the bug was sitting between chair and keyboard.

In the FontLoader, I had the name property set. Which is set automatically if a font is loaded by source. https://doc.qt.io/qt-5/qml-qtquick-fontloader.html

Having the name property set while loading a font by source is no problem under macOS but under Android, one Devanagari font started to dominate all instances, where Devanagari symbols appeared and all logic, how fonts are applied falls apart.