I've marked this as minor because it does not seem to affect anything, other than raising a PHP warning, but that in itself suggests something is amiss somewhere.
When joining twice (or more), all the joins must return some rows, else the warning:
In my particular example, I am simulating a ManyToMany relationship via a join table, so have relations set up either side as OneToMany and ManyToOne. In order to retrieve the "many" records, I need to first join the link table, then join the records that the link table specifies.
If the link table join returns some rows then everything passes without incident, however if the link join returns no rows, then the above warning is raised.