In the "conversation" between the developers working with PDO at the moment, Wez Furlong has a few more comments based on Lukas Smith's blog entry on the subject.
I know Lukas would love to see things work a little differently in PDO, but there are good technical reasons why things are the way they are now. Here are some reasons in random order: It's impossible to build a magic database abstraction layer that works for everything, PDO is data-access abstraction (not database abstraction), No two underlying database client APIs are the same, Most don't separate the concept of a prepared statement handle from a result set, Most overload functions like RowCount() to have the dual meaning that Lukas mentioned, and the MySQL client API is a bad example of a typical database client API.
He also makes a comment about the naming issue suggested by Lukas (function names acting as self-documentors), and how sometimes, you just need to name it something simple to get the job done...




