That is some progress but there may be a problem... If user doesn't request USER_INFO then on every portlet request the user will be taking the performance hit (if any) on retreiving the info. That could be significant or not dependent on caching.
I think you understand what the possibilities are though so I think if we continue along the path we may come up with something.
I will forward your latest suggestion to jetspeed people and see what they think wrt performance..