I still don't think I get what you are trying to say... abstraction layers only are 100% portable if the SQL being sent to the databases you want to work with are supported by all of them. If you are using JDBC, ODBC, ns_db or whatever, and your SQL is not 100% standard and supported by all, then you'll still have to modify your programs.
From one side the new ArsDigita DB API will make porting easier... for example, now we don't have to go around modifying every single place where "SELECT sysdate FROM DUAL" and "SELECT a_seq.nextval FROM DUAL" appear. We just modify the declaration of the db_sysdate and db_nextval and we're set.
But the new DB API also brought new challenges like bind variables and a greater dependence on ns_ora.
On the db_multirow x db_permitted_multirow issue, I can't find db_permitted multirow in the DB API.