I only added this code to test:
 $this->sql_select  = null;
 $this->sql_from    = null;
 $this->sql_groupby = null;
 $this->sql_having  = null;
 $this->sql_from    = $this->_sqlForeignJoin($this->sql_select, $this->sql_from, $this->parent_relations);
And it's generating a wrong FROM clause:
FROM equipo CROSS JOIN participante 
LEFT JOIN part_equipo_xref ON (equipo.equipo_id=part_equipo_xref.equipo_id AND participante.participante_id=part_equipo_xref.participante_id) 
[B]part_equipo_xref LEFT JOIN participante ON (participante.participante_id=part_equipo_xref.participante_id)[/B]
The code in bold wasn't included in the originally generated sql.