PDO non è un vero e proprio abstracion layer ... è solo un "layer", ovvero scrivi una volta e con pochissimi cambiamenti utilizzi su qualunque db.

Un vero abstraction layer ti permette di scrivere allo stesso modo per qualunque db, nel senso che tenta di normalizzare anche le query, la sintassi usata o altro per il db mentre in PDO se usi sintassi che va solo su PostgreSQL non puoi riusarla su SQLite o MySQL e vice-versa ... ma proprio per questo è tra i più performanti e probabilmente tra i più affidabili (la query che dai, è quella che è ... la query specifica per quel db, è quella che hai scritto ...), certo comporta un pò di sbattimento in più in scrittura query dedicate ... ma con i prepared statements non è che poi si hanno problemi di sorta (eventualmente ti fai un layer di query dedicate, in base al tipo di db scegli la query sfruttando sempre gli stessi parametri, quelli utili).

L'unico che non so se o come possa andare è Oracle, dato che non mi sembra si possa sfruttare PLSQL tramite PDO ma non mi sono mai documentato troppo in merito ... ed oracle "raramente" fa accoppiata con PHP