Ein interessanter Ansatz. Ist mir nur nicht ganz klar wie man sowas umsetzten kann mit dieser "Zwischenschicht". Na ich werde mal schauen ob ich weiterkomme.
Du musst das Rad nicht neu erfinden - schau dir Doctrine an. Mit Doctrine schreibst du deine Queries in DQL (wenn du SQL beherrschst, dürfte die Einarbeitungszeit sehr kurz sein). Um die DBMS-Unterschiede (zB LIMIT n bei MySQL vs. TOP n bei MSSQL, ...) kümmert sich dann Doctrine.
Weiß aber nicht, welche MSSQL-Treiber momentan von Doctrine unterstützt werden. Ich erinnere mich dunkel daran, auf github mal einen Adapter für den sqlsrv-Treiber gefunden zu haben ...