Hi Ben,
What you could do is implement the custom per user files in a custom physical .aspx page that you copy somewhere using a post build event.
Then you could use a custom profile setting that points to a .ascx which implements ISettingControl. Then you could create a link to the user files inside the .ascx and just use some hard coded string for the ISetting methods (essentilly they are not needed for your link but you must implement the interface to be able to load the control on the profile. You would need to configure the setting it so the link doe snot show on the profileview.aspx but only on the /Secure/UserProfile.aspx page.
In your custom page you would have to implement something similar to file manager or shared files depending on the real security needs of the files.
I would not recommend such a feature unless all your users are trusted, I would not let strangers upload files nor trust files uploaded by them.
You can enable users to use the main file manager and store files in a user specific location from site settings security tab. I'm not sure if this meets your need for "private files". Keep in mind that any file stored on disk that is not using a file extension protected by ASP.NET can be retrieved by an http request directly for the file. There may be some security by obscurity because people don;'t know what files exist but if they could guess a file name and location for say a .pdf file they could retrieve the file easily, nothing protects it. The Shared Files module really does protect files because they are stored on disk with .config extension which is protected and restored to the original file name on the way out if the user has permission to download.
Settings in user.config are not stored in the db. There may be cases where we have similar settings in the db as in user.config, if you have a question about a specific setting I can tell you.
Only profile data is stored in the db, the properties themselves are stored only in the mojoProfile.config (or custom named .config), the config data is loaded and cached, so recycling the app clears the cache and reloads them.
Best,
Joe