There should be punishment for teamkills. Like, getting 5-10 teamkills (quite common for those "good" players) automatically leaves them with no coin, score. No matter how many kills they make. Or autokick. Or autoban from playing team games (both guild and random) for 5 minutes. Nothing serious. Just to make people aware they're not the only member of their team when they play team game.
Alternative: ricochet. It means you deal damage to yourself instead of your teammate.
Alternative 2: shared damage. Either you both lose some health (2 teamkills and you're dead, they're not), or you both die (enemy team gains 1 score.
Abuse? Can someone not join a team just to screw them up?
The punishment for teamkills is that the other team gets a point.