This JIRA is for refactoring and adding more join algorithms into a join library.
This is for joins between results from intermediate patterns, not joins that solve basic graph patterns.
Normal use is a index join algorithm but it has some requirements about variable scope. ARQ falls back to a general join mechanism if the scoping requirements aren't met (this unusual).
The general join code is not good. It should be, for example, a hash join if possible.
JENA-266: There is hash-based anti-join code in org.apache.jena.sparql.engine.index in support of MINUS. This is not a proposal to combine that code into the join library. It is not immediately clear that code to cover all cases (inner join, left join and anti-join) at once is really a good idea if it leads to excessively complicated code.