- No standard authentication system, you have to go private message someone called NickServ.
- No chat history built in unless you run a bouncer.
- A lot of weird legacy features with multiple ways to negotiate them (CAP, PROTOCTL, ISUPPORT, just assuming you can use something, etc.)
- Inscrutable and incompatible user and channel modes across different IRCds.
- No voice chat unless some client is implementing it via some kind of DCC command, and even then no multi-user voice chat and requires direct IP connection.
- Horizontally scaling IRC is… interesting.
If I were to even think about using IRC as a base, I would overhaul a significant amount of the protocol and break compatibility with a lot of existing applications! None of these are insurmountable problems but to fix then you would be inventing a lot of bespoke parts of the protocol!
You can (ab)use IRC as a generic datastore, the same way you can Twitter, SMS, or anything else that allows for data to be stored, but it's a terrible idea, and you'll end up with something overly complicated and without any sort of compatibility with generic IRC clients.
And honestly, complaining about Electron apps is just lazy. It may not be the choice you make when you have unlimited resources and time to write separate native applications for every platform, but it's perfectly accessible for a first iteration. Also a great way to make sure all your platforms can have roughly the same behavior. Would much rather have an Electron Linux app (which is easy to port and costs little to maintain) than no client at all.