Earlier quoted context omitted.
While I agree with your pain points, I would not say XMPP that the protocol isn't any good. - Pidgin: Just take a look at their bug tracker. You will not have any problems finding tickets requesting essential features which are 6 years and older (e.g. Message Archive Management). So unless the Pidgin devs get some done I would not use their client (Gajim is a much better alternative, especially since the 1.0 release…
From the user perspective, Pidgin is pretty much unmaintained at this point, so it's like complaining that old software isn't modern. Also, ejabberd doesn't disable OMEMO by default for quite a long time already.
When I got a MacOS machine up and running, I installed Adium (top result still if you go around looking for a MacOS XMPP client), also a dead project.
On Android, the top XMPP client does not support OMEMO and the new hotness XMPP client does not support OTP!
I have a legacy client on Android and Pidgin half hacked together with random plugins on my Windows boxes and I forget what in the world MacOS is running because I have it turned off half the time because the more clients I have connected the more problems I have and holy crap this is why Slack is a great product.
XMPP has had 20 years to solve these problems, and part of their problems of course is that the base protocol wasn't designed to solve these issues out of the box.
But, from the end user's perspective, Telegram, Signal, What's App, Slack, Discord, and Teams, all "just work"!