The best and most official explanation I've read is the 2017 GNOME blog post, Status Icons and GNOME.
Essentially, tray icons are a throwback to the days before designated notification and media playback APIs, and they now create some ambiguity for app developers, in addition to being ripe for abuse.
It's a worthwhile read and the writer makes several valid points, but doesn't address as much as I'd like in terms of actual solutions for things like instant messengers.
Personally, I would be happy if most traditional tray apps could be displayed in the dash, with status indicators, and started in a minimized state, but I still see the benefit of having some always-visible panel icons, such as instant messengers and VPN indicators.