It all depends on the servers settings. What may work great on one server may be considered flooding on another. I find the limit on the server and create a queu. The main server I script for allows 11 or 12 commands within 600 milli-seconds. So I just set up a queu using a hash table that sends 10 or 11 commands every 700 milli-seconds.
But I have never had any trouble joining 10+ rooms at once with the:
/join #chan1,#chan2 etc.
command.