I think it is important to remember that this QB is directly built up from the PHPCR QOM, this is how the QOM does it, and I think abstracting this behavior would give people wrong ideas about what actually happens.

I think there might be some scope for convenience methods, i.e. `fromDocument`, `fromJoin` and `addJoin[Left|Foo]`, but essentially I am pretty sure that there is nothing wrong with the current API.