This is quite a difficult question - in multiplayer, people will use all the dirty tricks they have available to gain an advantage. Spying, for example, is impossible to prevent. You just put one guy in teamspeak on the opposing team where he stays the whole match. How much value there is in spying depends on the exact way the strategies and tactics of Battlescape will develop.
Imho, the biggest issue with team switching is balance. Ideally, the game is as much fun when you are losing as it is when you are winning. But people like winning a lot, so most of the time, you do not see people switch over to support the weaker team and even things up, but instead the losing team has players log off or switch, and the winning team stays online and even gains players.
Autoteambalance systems can work but also create problems. One important reason to allow team switching in the first place is that you can always team up and play with your friends, even if you started in different teams by accident or because the autoteam balance system put you in opposing teams.
Generally, creating balanced teams by the players themselves through incentives would be preferable to automated systems. Like a credit bonus when underpopulated. Switching to the winning team should cost you more than switching to the losing team.
I kind of like the idea of team-specific credits and ranks, as it encourages committing to one team early on. The longer you wait with switching, the more costly. But it would discourage rich players from leaving the winning team to help out the losing team, and they could not give much needed resources to the losing team. So imho, play time and relative team balance should both play a role in team switching cost/resource transfer.
A bit off topic, but one of the reasons people leave the losing team, either by stopping playing or by joining the winning team, is that there can be a point where you see that the end of the match is coming, you are losing and you feel like there is nothing you can still do about it. If the game can detect the imminent loss of one team, it would be great if there was a chance to get some sort of “glory” - objective or mission - an epic last stand, a last wild counterattack or something. Not something that turns the whole match upside down and negates all the winning the other team did so far, but something to rally the losing team, give them a good, last fight and provide some reward that you can only get by sticking in there and doing well. That could be some bragging-right stats/achievements thingy you get to keep, and/or some small advantage for future matches.