This isn't directly related to the OP's question, but it sparked my curiousity:
When I ask for info about the user (say $user->get('zipcode')) I first check if the data is currently defined in the instance. If not, I check the session cache (currently Cache::Filecache) and finally, if it hasn't been found, I query the DB.
How much overhead do you (OP and others reading this) think this adds per request? I guess the value would be highly dependent on how frequently the request makes it to the DB request phase.
I wonder if maybe a persistent DBI connection might provide more overall value than locally caching the data.
---
It's all fine and dandy until someone has to look at the code.