Punto 1
uso PDO da tempo e non ho mai avuto questa necessità seppur credo sia effettivamente una mancanza ... sempre usato una var integer e incrementata in ciclo

Punto 2
Manca un metodo per eseguire SELECT "buffered" (quelle eseguite con mysql_query() ) senza passare per prepare() -> execute().
già ... puoi fare una cosa tipo questa però che risolve il count, il buffered e la singola linea per la chiamata
codice:
foreach($db->query($query) as $row[]){}

l'unica soluzione rimasta per una "buffered query" sembra essere quella di usare prepare() e poi execute(), ma il vantaggio principale di questi metodi si presenta quando va ripetuta una stessa query più volte (con parametri diversi).

non necessariamente, il vantaggio principale è anche ordinare la query ed asicurarsi l'impossibilità di sql injections invece di dover usare mysql_escape_string o mysql_real_escape_string per ogni dato di ogni query.
Poi se consideri che prepare ed execute sono 2 classi distinte (la prima PDO, l' altra PDOStatement) credo sia normale dover fare una chiamata in più ... ma una linea di codice anche breve come $smtp->execute() dici che incide così tanto per il PHP ??? :master:



essere costretti a due chiamate di funzione per ogni query mi sembra una cosa inutilmente macchinosa, terzo perché il dialogo client/server (dove il client è il php e il server il DBMS) è inutilmente appesantito.

appesantito ??? una riga da 10 caratteri su un driver compilato ? ...



A me sembrano due mancanze importanti, se non ci mettono una pezza è assai probabile che io eviti di usarlo per questi due motivi.
Che ne pensate?


penso che per queste 2 sole mancanze comunque raggirabili sia una presa di posizione un po' forzata quella di scegliere di non usare un driver che ti permette di scrivere una sola volta un applicativo e di poterlo utilizzare su qualunque database (perchè è per questo che è nato PDO).
Questa sua caratteristica ti riduce del 300% lo sviluppo di forum, blogs, guest, quello che ti pare, qualora volessi fare un applicativo portabile ... solo le query saranno diverse e non tutte le chiamate a funzioni dedicate, oltre alle query.

Questo vantaggio, unito al fatto che un domani potrebbero eliminare queste mancanza, essendo PDO giovane, credo lo renda la soluzione più indicata, tanto più quando tutti gli altri linguaggi hanno drivers analoghi e questo per PHP è nato proprio per colmare questo bastone tra le ruote in fase di sviluppo crossplatform.

Opinioni personali ovviamente


P.S. se invece sviluppi solo per un database, puoi usare quel solo driver che ti interessa, peccato per SQLITE3 che senza PDO non va (almeno così mi sembra di ricordare) , gli altri li conosci