Quite a while ago, I would guess 10 to 15 years, I have used messenger services like ICQ, MSN, AIM, and Yahoo! IM. Just like today with the various messenger services like WhatsApp, Telegram, or Signal, not all of my contacts would use a single service.
The past generation of messaging services did not really have open protocols, but at least they did not block attempts to reverse engineer the protocol. I used a program called Miranda IM which would allow to have all the four services in a single program. People who used multiple of those messengers could be bundled such that they would only appear once in the contact list. I would not have to remember who was using which service, I could just use it as one unified contact list. On the Mac I have then used Adium which basically did the same. Notifications about new messages have been unified to a common style, only one program was running in the background.
Ever since, email did not come with an official client; email is just a protocol. One can just whatever program one wants to have as long as it supports the IMAP and SMTP standards.
There was a downside, though: The official ICQ client had extensions that only worked when both people used the official program. This meant that I could not play those games with other peoples or use the other extras the services offered. I did not care for that because my multi messenger would support the baseline on all protocols, text messages and file transfers. Video calls were only supported with the official clients. Those multi messengers therefore only expose the greatest common divisor, not more. If that is to be increased, every service would have to implement something.
Then Skype came up. It was great, there were free voice and video calls at a time where voice calls were still billed by the minute on landline. But Skype would not integrate into Miranda IM at all. It would have to run as a second program. Notifications look differently, especially since Windows XP did not have any form of notification API and programs just show a window in the bottom right corner. Occasionally, those notifications from Skype and Miranda IM would overlap, demonstrating the lack of a Windows API for that.
With the current plethora of messaging services, it is just getting worse. Back then, the mentality was that first a protocol gets specified and then perhaps an official client is implemented as a reference implementation. Especially email and XMPP were developed as an open, federated standard which allows users to choose whatever software an whatever platform they use. I like that. Today, the contact point with the users is not the protocol but the official implementation of the client. The implementation is only for the platforms that the company decides to support. And because the protocol is not standardized, you cannot build a client for a different platform even if you would invest a lot of time. Let me give a couple of examples:
Last.fm offered radio streaming with an official API. I could use a desktop music player like Clementine and have system wide keybinding. I could listen to Last.fm with every software that had a plugin for that.
Today I have Spotify. It works in the browser, but only with Adobe Flash, which I do not want to have on my computer. It has a Linux application which has a fair amount of issues. On Android I use the official application.
WhatsApp only comes as a mobile application for Android, iOS, and perhaps Windows Mobile smartphones. There is no way to install it on an Android tablet or a Windows desktop computer. If you want to use it on a desktop, you need WhatsApp Web which still routes the traffic through your smartphone, if that is not aggressively asleep.
Contrast that with an open protocol like XMPP where you can use whatever client you want.
Telegram and Signal have their protocols somewhat open and Telegram encourages to build other clients. Signal does not seem to be so in favor of letting LibreSignal use their servers, so I think that other clients are also not in their liking.
The advantage of having only the official app is that updates to the whole system can be pushed out way faster. Say you want to add animated images to your messaging services. With something like WhatsApp, you can just update the servers and the official client. You will have to wait until all your users have installed the new software, but you can start pretty quickly. With XMPP you would have to extend the protocol first. This would mean that you have to talk to a bunch of people in order to get their agreement. Then all server implementations that are around need to be extended. And then all the clients. This is such a high friction process that extensions rarely happen. Even worse is end-to-end encryption. WhatsApp has just deployed it. Signal has it. Telegram has it, if you enable it. But email and XMPP? There are so many competing standards (S/MIME, and OpenPGP for email; OTR, OMEMO, and OpenPGP for XMPP) that getting all clients on-board seems like an impossible challenge.
In the early days of Linux, one would have to specify a protocol. People would then implement servers and clients and that protocol can be used. This took a while though. Nowadays a service provider provides an application for some major platforms and it is considered done.
I regularly see something like this on my Android lock screen:
Android has a notification API. It has my contacts bundled together in the address book, it spans the social graph with phone numbers. The services are still disjoint but they all feed their notifications into an API which displays them homogeneously. It is a bit like in my early days with Miranda IM, but still far away from that. I still need to traipse around the various apps in order to read and reply to the messages. This semi-unification only works on my phone. It does not work on my tablet, it does not work on my desktop.
The ecosystem went two steps backward but at least one forward. We will see whether I will ever have the comfort of unification that I had in Miranda IM without limiting myself to a single messenger app.