Did you look at
DBIx::Perlish? The DSL it introduces is the perl itself, similar to Tangram's perl expressions, but implemented by parsing of perl optree (rather than operator overloading),
and therefore much more flexible. I don't think it covers everything you named as the ideal solution, but still.