The “centralized” part is not a problem with their protocol and it’s well explained.
The 3rd-party clients thing … I agree with, but one can find justifications for that too. They probably don’t want people to use it for filesharing with uuencode and base64. Or even for VPNs, like they did with Tox when it seemed to have a future.
The phone number thing sucks, but there’s a need to defend against bot registrations somehow.
The desktop app sucks absolutely and conclusively. If there were a library one can use to make a Pidgin plugin, it would be a godly gift.
I personally think they could replace the “centralized” part with the “relay” part. Seems technically possible with their protocol. Their center plays mostly the relay role. So it would be a bit similar to Usenet, or to NOSTR, or even maybe to something like old Freenet.
But yes, there are good arguments that making it decentralized would slow down necessary changes and fixes.