We have "Display to Public" and this is functionality, that allow to show/hide fields from user public profile. This is usually used in forums. To manage this we create one variable in persistent session per each user field, that can be displayed in it's profile (10 fields). This is not easy scalable way and takes more space in database. Besides, variable name in persistent session is not directly formed from field name it shows/hides and require additional mapping to be created (in UserProfileTagProcessor).
I propose to create new user field DisplayToPublic and store all field names, that should be visible there.