Collision detection and friendly fire are what I call anti-zerg mechanisms. They're put in place to discourage mindless zerging and mass conquest by numbers. Just because one side has the most players doesn't mean they can attack with reckless aggression, because if they do they may find themselves on the losing side of the battle.
Like in real life, conquest only by numbers has led to devastating defeats. Going to war or to battle is not a matter of simply oppressing your opponent by storm, because if it were, then Sun Tzu or Zhuge Liang or the Shu Empire would have never been able to defeat their larger enemies. War is also about tactics, strategy, skill, and espionage and without possibility of strategic thinking, a guild or alliance with the largest numbers will be the winner of every battle.
So should guilds have a cap even with friendly fire and collision detection? I think it should, maybe a cap of 128 players or so would do nicely. But of course guild leaders will have to scan their potential candidates wisely, as they do not want to invite someone who may do harm to the guild such as a spy. But to me, that just adds another realm of warfare tactics (espionage) which can certainly make the game much more interesting and fun.