The basic Persistent backend is designed without joins ("web-scale"), and with the idea that it should be SQL agnostic. App-level join functionality is definitely needed.

If someone wanted to design a layer on top of it with other SQL features that just the SQL backends can use that is fine. However, this might start re-inventing the wheel. For those interested in SQL joins and otherwise advanced SQL queries, it would be great if they started trying out a better tool for the job, like the recently released DSH [1] or (bitrotting?) HaskellDB. Relational Algebra sql query libraries can be very productive to use for 95% of use cases, even if they aren't "web-scale".

[1] http://hackage.haskell.org/package/DSH
[2] http://hackage.haskell.org/package/TableAlgebra