Ya que llamas a init_jugadores en cada "vuelta", creo que sí estás creando nuevos objetos cada vez. De todas formas podrías comprobarlo conservando alguno de los jugadores de la "vuelta" anterior y comparando con el operador de igual (=) que solamente dará verdadero si los objetos son el mismo (que no es lo mismo que decir que son objetos diferentes con iguales valores es sus atributos).
Yo creo que no necesitas una cola de jugadores. Simplemente ármate una tupla (o una lista, la diferencia es que la tupla es inmutable) de jugadores, y luego al jugar el campeonato recórrela con un for.
Algo así:
Código python:
Ver originaldef campeonato(tupla_jugadores):
ganador = None
for jugador in tupla_jugadores:
ganador = juego(ganador, jugador)
return ganador
Así no hay necesidad de recrear la tupla de jugadores cada vez y el código de la función juego se encarga de decidir quién gana, siempre entre dos jugadores. Lo que esta función devuelve es el objeto que representa al jugador ganador. Deberá hacerse cargo del caso en el que ganador es None, pero eso es simplemente agregar una excepción.
Saludos.