In this scenario, the alliances are irregular. a and b are a team (more or less), a and c are a team, but b and c are not in same team. It is a strange pattern, we don't need to remove it, but I think would be better to add a "team mode" (configurable).
In team mode, the server could decide how many teams are in the game, to make things easy, the teams could be named using numbers and no checks when joining teams.
I think something like that, but the problem are the traitors.
if you have a server with two teams set up, must balance the server players when he enters the game, if you have a player who enters your hand, it kills your team, how?