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.