最近のRDB周りの疑問

SQLを隠蔽するようなツールでは、複雑なSQL文相当のことが可能か? (例えば、インラインビュー, SELECT DISTINCT …, 副問い合わせ, EXISTSなどの相関副問い合わせ, MINUSなどのSQL方言, DECODEなどの条件分岐, FROM句の記述順による駆動表の指定, ヒント句の指定)
複雑な条件の場合はSQLを書く抜け道も有るようですけれど、それだったら最初からSQL書いた方が良いんじゃあ?? SQL書ける人なら唸るほどいるけれど、Java OKで、しかも特殊なツールの使い方までわかってる人なんて、ほんの一握りだろうし。<追記>
"Criteria"のようにWHERE句を意識させるコーディングを強要するのなら、やっぱりSQL文ダイレクトの方が良いんじゃないのかなぁ。(SQLを隠蔽するツールがSQLを意識させるなんて、本末転倒??)