I don't buy your definition of "proper RDBMS", it's way too ad hoc. Made up just to allow you to bash MSSQL. MS SQL has the communication protocol optimized for the common case, "you ask for data, you fetch the data, you ask for some other data, you fetch that data". The requirement of the special coding is caused more by the fact that there is no DBD::MSSQL, but rather a generic DBD::ODBC that has to support a lot more than just the MSSQL. So it cannot transparently handle the more complex cases.
Enoch was right!
Enjoy the last years of Rome.