With WhatsApp, Discord, etc, that server is provided by Facebook, Discard respectively. With XMPP, Matrix, that server is the instance in which you have an account or where the channel is hosted.
With IRC, you use a bouncer. What makes IRC unique is that a bouncer is _optional_. You can even join a channel without an account and without a server which keeps logs while you're offline. This ephemeral level of joining doesn't exist in WhatsApp, Discord, XMPP, Matrix, etc.
And, btw, this is not a new thing: I first saw bouncers 15 years ago and they weren't even new back then.
All of our comms for https://pico.sh are on irc and we have tons of users join and leave immediately because the room feels cold / dead even tho we were chatting 10 mins prior.
That said I can't say it's hard to just run irssi inside of tmux and attach/detach as necessary remotely. Nor is it hard to throw my media I'm sharing onto a web server. But yes, you do need to mix and match your utilities, rather than have an all in one package.
I do often enough find this to be more of a feature than a bug -- being stuck with Discord's UI is gross, but the network effect does have me continuing to use it for some groups.
[1] - https://altchan.org/sh/8
who pays for the storage to keep the file on a computer somewhere, and the network to serve the file to the internet indefinitely? in Discord's case, it's the users
usenet iirc tried to do a sort of "torrent" the data across enthusiasts' / participants' computers?
This is fundamentally the main problem with IRC development nowadays. People want IRC to have features but are unwilling to support IRC developers to actually implement them and as a result pretty much every single IRC developer (myself included) who isn't churning out slop is burned out because its a thankless job.
Ircv3, the thread title, supports file sharing
Good v3 clients like The Lounge also offer it