Were I the God of Brink I would have the game check every N-seconds (N being subject to tuning to see what numbers are good over time) and give an "Underdog Bonus" in ratio to the disadvantaged team for the XP earned in that N-second window.
Something like Effective XP += XP Earned this interval * Tuneable scaling factor * Other Team Human Count / My Team Human Count; IFF the team you are on has fewer people.
So if you were in a five-to-one game, for instance: XP+=XP * 0.15 * 5 / 1; Note that 15% is pretty high but that's why its listed as tunable.
At the end of the game the final total screen would show "Underdog Points Earned" just like for completion bonus etc.
Switching teams should discard all Underdog Points earned in the match so far. Show that too if appropriate.
The summary screen should also show "The Other Team's" underdog XP total (basically points thrown at the other team by playing unbalanced.)
This would make it worthwhile for someone to stay when they enter a game and find they are totally outnumbered. Since it is a running sum, not calculated at the end, the whole switch-at-the-end thing is nerfed out.
This "bonus" is simple to code and not a huge weight on the game engine at all, but it gives the _person_ a reason not to be a jerk, solving the team problem behind the controller instead of in complex code.
