I think I found a solution, however it will be implemented in the new 1.0.2003.3 betas.
When A, B and C are in the join list, and this is the case:
SELECT * FROM A LEFT JOIN B ON A.foo = B.foo
and C is added to the join list via a relation with B, it will be B which will 'drive' the join, thus will control which rows of C which will be added. Now, if B is added via a WEAK relation, (in our example this is the case), C should also be added as a weak relation, no matter what the relation is between B and C from the POV of B. This will then result in the LEFT JOIN.
No-one would be interested in an always strong relation between B and C, because B will already introduce NULLs, which are requested due to the ObeyWeakRelations setting. If the caller didn't want any NULLs in the B fields, s/he would not have set ObeyWeakRelations to true, and an INNER JOIN would have been the right option.
A repro with Northwind:
Customer - Order - Employee.