Las dos herramientas mencionadas cumplen precisamente el papel que proponía yo más arriba: Son frameworks que permiten separar la aplicación de la capa de datos.
El problema que persiste es que los modelos de datos y los SP se deben construir separadamente, ya que tanto una herramienta como otra lo que proveen son los accesos a datos, pero la customización de las consultas no son realizadas por ellas.
En otras palabras, el problema de la sintaxis no portable entre los motores subsiste...
En el caso de Hibernate, sólo da soporte a los SP de SQL Server, no así a los de MySQL (ni a las subconsultas, lo que es crítico).
En el caso de ibator,
este ejemplo muestra cómo una sentencia no es generada por el ibator, sino como código customizado...
Yo insisto en un tema: El problema no es acceder a las bases de datos. Eso se puede resolver hasta con vb.Net usando ADO. El problema es cómo resolver la portabilidad del SQL entre ambos motores, ya que estas herramientas no tienen esa capacidad,
y es en el SQL donde las bases de datos muestran su verdadero poder.