Indeed, the application scope won't work for portlets in different WAR files.
The portal does
alot of work to figure out the user's locale. It first looks at what the client supplied when they signed up, then it looks at the default for the users' browser, then it looks at the default for the portlet, then it looks at default for the portal as a whole. I'm questioning why you're adding a new layer to this already fairly solid functionality?
My suggestion would be to use a portlet service. Put the value for the user in a temporary database, using a portlet service, and map the username or unique userid to the i18n preference. Then have every portlet look at that web service.
Of course, this now means EVERY portlet you deploy needs to look at this portlet service, which is alot of redundant code. If I was architecting this solution, my initial take would be to veto this functionality. I'd need a pretty darned good business case to justify this type of functionality.
Good luck!
-Cameron McKenzie