Korma seems to do exactly that, N+1 lazy loaded queries included. SQLAlchemy, Esqueleto, Slick, Quill, and the like all generate precisely what you tell them to (i.e. queries semantically the same as what you'd write by hand).
This is not to disparage Korma, it looks pretty cool, I'd certainly give it a look if I worked with Clojure.
Well said. I always think of this as the canonical example:
http://sqlkorma.com/
I don't know what rock I've been under, but didn't realize SQLAlchemy had the same idea w/ SQLAlchemy Core.