This is something that has been a gripe of mine in a current project, where by originally we had organisations as users, rather than users themselves.
I think what should happen is the django user class should have a "displayname" field, for which defaulted to the username if none was provided, if users wanted more finegrained user information then they should use the user profile feature.
Further to this again, perhaps a good idea for the contrib.auth is for when django's model inheritence is sorted if someone wishes to expand the user field in some way then all they do is inherit the base contrib.auth.models.User
model and add their own data, and then all that would happen is in the configuration file users can specify the user model used by the auth framework (could also be a list of models if you want multiple types for any reasons), thus solving the current user profile issue?