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.