In my opinion, most of the differences between IRC and Slack/Matrix/Discord/etc stem from trying to keep users in a group chat while they're not actually online, since this requires servers to store message history, and then you're legally required to have a way to moderate the message history, and you might as well send back-history to clients who just joined, and so on. Additionally, since each message is stored authoritatively on the server, it can be updated with things like text edits and emoji reactions.
Some of the differences, like being able to send pictures, do not stem from that.
I read and responded to a similar comment recently here on HN about email security. The gist of the question is "why don't we create something like email but secure?" and the gist of my reply is "if we created a whole new system, we'd add all the things we can now have that we couldn't have when email was invented, like instant notifications, and then it would be a reinvention of a newer protocol (I didn't name Matrix, Fediverse or XMPP), nothing like email.". https://news.ycombinator.com/item?id=42633785
Encode the image to Base64, post the string and have your client decode. Or use your browser.
Simple.
The lack of features that Slack/Discord specifically added to differentiate themselves from IRC are also important, but it was a lot simpler to add them to their brand new designs, than to work through having to specify them onto the IRC protocol and then get servers and clients to adopt it. You can look at the IRCv3 page linked higher in the thread to see some of the efforts, but this is 10 years later and we're still not there. :D
Personally, part of the charm of the IRC protocol is the simplicity. You can implement a client effortlessly in most languages in just an hour or two.
Then slack did the modern IRC client.