For example mouse hit testing a window for transparent areas. That's not very common and I don't see very many (none) projects that handle it.
Tray icons are a HUGE mess. People have fixed the issue for popular applications by taking the time to make it work on a variety of distros. This means adding in code to support libappindicator in you want the Ubuntu users to use your program from the tray. Sure the main apps distributed with Ubuntu support them, because Canonical is paying his devs to remake everything. Sure Steam works with it because, well it's Steam. But now, me the small guy, has to figure out how to add a code path to check for Ubuntu and use their API if I want a tray icon, and then I have to revisit it when they moved from version1 to version3. What next?
https://www.markshuttleworth.com/archives/333
Point is, nothing is insurmountable, but it sure is a pain for individual developers like me.
The current state has the effect of so much fragmenting what you can deploy to where that most people throw their hands up in frustration and say they are not deploying to Linux at all, Linux can deal with a web interface.
only the biggest software companies can afford to write a gtk / QT UI and ship as a RPM / Deb / apt package / tar.gz
The wild part is no one seems to care that this great app fragmentation occurs. There is no equivalent of an EXE on Lenox, as the elf file is treated differently depending on the distribution.
The flat pack vs snap war indicates that app distribution also hasn't been solved. Windows has wix installer or install shield, Mac has .DMG, but Linux does not have a unified strategy for the common user tasks of installing software, running software, or managing your installed software.