I hate special cases too (though realize sometimes that's just the best overall way to do a thing.)
That said, I feel like we need something like profile, but we might actually need a couple of things:
1. Something where the app developer can put user-specific stuff that is not editable by users.
2. Something where users will be able to change stuff.
Obviously these can be handled in separate collections/models with links back to a user. And maybe that's the way to do it. Maybe that's cleaner overall. User remains fairly locked down and if your app needs a user customizable profile object it creates UserProfile collection and links it back to the user ID. Similarly anything that is specific to the user but should only be controlled by the app itself can be a separate collection like UserAppProfile. Alternatively you could use allow/deny to control specific fields within a single object. Either way this eliminates the special case here and makes it more consistent with everything else.
I guess I just talked myself into supporting this deprecation. ;-)
Chris