Theoretically there is 512 bytes limit to all IRC commands, and nothing is done in spectrum2 or libcommuni to split messages into allowed chunks sizes, as it's done in pidgin (https://bitbucket.org/pidgin/main/annotate/0b7a0190d83db173f80755c2d6267b0811cc07eb/libpurple/protocols/irc/cmds.c?at=default&fileviewer=file-view-default#cmds.c-437:462).
Strangely, on freenode it seems to work with longer messages (tested above 2000 characters)...