Fedora. Though I just tested it again and the input method icon is now hidden by default, and does not automatically show up when appropriate :|
You can make it always be shown in the system tray configuration, but this should really work out of the box...
I haven't read so much nonsense packed in a single sentence in a while. No, apps don't implement any of these things themselves. How the fuck would apps simultaneously "implement compositing themselves" and also neither have access to the "framebuffer" (which isn't even the case on Xorg!) nor information about other windows on the screen?
Please, don't rant about things you clearly don't know anything about.