There are too many ways around this.
Foremost, using external programs to chat or talk.
If a bunch of trolls and a playing team comm/player want to group-up in a random pub game just to use team-speak for spying then it's out of any game developer's hand at this moment.
But in 99% of the time no-one will take the extent to do it just to ruin a small pub game (which in most times we are talking about 7-8 players on each team which are pretty randomly sorted).
Secondly, you can all chat (this will not be disabled).
It was disabled in SavRez and I thought it was a good idea.
But ok, then just disable pms IMO.
Thirdly, even if all chat was disabled, you can start a msg vote.
A vote message will reveal the identity of the troll and hence he will have to face:
1) community shaming
2) ref punishment
3) awareness of the "victim" commander he is being spied against (might give him some leeway to react).
hence making it less prone to spying as a whole and lowering spying potential negative impact.
This is also true for "all chat"
Fourthly, even if we disable all chat and msg votes, you can change your name to give out hints.
So again just make it harder by disabling pms to non-specs.. which is the easiest way to spy without any community repercussions.
Fifthly, you can join the enemy team and tell them directly.
You can, but again in this case it would be kinda clear this is what you did and the other team's comm will not be able to react as fast as he can through real-time pms.
Sixthly, if the enemy team is full, you can get someone else to join the other team for a moment.
And seventhly, you could also just join the team you want to spy on and then use all chat or PM to warn the enemy team.
So as said.. you are correct we cannot stop spying, nor should we disable "alll" chat.
What we can do by disabling spec pms to non-spec is make it:
1) Significantly harder (which can be very important since delaying the "spy time" can mean your tactic will be efficient nonetheless)
2) Assuming ppl don't group-up for team-chat/live online stream just for a simple pub match then revealing the spy identity is rather easy.. and it cannot sustain forever such revealing forms of spying since people are changing teams and not "sticking" with their fellow spies (at least nowadays, I don't know what the future holds).
making a spy face the wrath of the community and prone to refs punishments should be enough to lower the risks.
I believe one of the biggest problems Savage is facing today is skilled players don't want to comm from various reasons (and the server gradually empties-up while waiting for 2 comms):
Could be obvious sac rushes which you can't counter efficiently.
Could be the knowledge you will probably be spied against if certain trolls are in spec and you leave a temporary hole in your shield just to tech-up faster.
Could be just a noob team you don't wanna comm.
Of course we cannot handle all those reasons.. but if we help lower the risk of any of the reasons we make Savage more attractive IMO (this is why I also support moving sac to lvl2 and fixing the shuffle vote which sorts players unevenly in sheer numbers).
And I think disabling the spec pm option is rather easy to implement?
if you don't want to read it all, IMO today it's just too-easy to anonymously spy.
Another way to lower risk is just give god-refs the ability to spec PMs (and punish spies or at least open a forum thread about who was spying).
This could however be a problem that refs would be able to read plain gossip.. but IDK.. (I still think disabling PMs is the best route).
Come play with us on pub Clemens..