I've actually written IRC bots mostly from the top of my head.
The protocol and semantics are really simple.
Type this into a console near you:
nc irc.freenode.org 6667
USER foo bar batz boo
PRIVMSG #testchannel hello world
PRIVMSG test345 hello self
I'm not sure what you mean by fractured. Like every protocol it has a few rough edges, but those are nowhere near the semantic nightmare that I witnessed when trying to dabble with XMPP (which admittedly was more than a year ago).
How long did it take you bring your client into a reliably working state? And have you tried to do the same with a XMPP client for comparison?
As said, I didn't mean to claim IRC is perfect - nothing is.
But if you think the differences that IRC networks have introduced are problematic then I invite you to try and build a most basic jabber client.
However, I think it's a big mistake to claim IRC "scales amazingly well". The biggest IRC network today has tens of thousands of users (at the moment, freenode has 64000, undernet has 58000, and EFNet is down in the 32000 range) and the IRC networks are constantly suffering from breakdowns from overcapacity. Compare this to Skype, Facebook, or Gmail, with tens of millions of concurrent users.