I have built an mu-plugin that enables the use of local avatars with an SVG fallback using the first letter of the user’s first name and avoids the use of gravatars altogether. In doing so, I have learned that there’s no need to change core at all.
The trick is to use the pre_get_avatar filter, which short-circuits the get_avatar function before any call to gravatar is made. So I consider this petition redundant.
On sites (like mine) where the sites are locked down as membership sites or intranets, personal, uploaded avatars need to be secured from prying eyes outside just as much as the content of the site. Using a generic upload folder doesn’t achieve that, so then a site admin would have to add some code to do that anyway.
Site admins (like me) may also want to have a discrete avatars folder, separate from other uploads. But that might not suit everyone.
My mu-plugin handles (2) and (3) in the way that suits me. And that’s the point of a plugin.
I think this one is worth leaving open. The default option in core should be to use locally-generated avatars, perhaps based on the letter of the username. Code that calls out to external servers such as Gravatar should be moved to a plugin, and allowing users (with sufficient permissions) to upload their own avatars should also be explored as a plugin.
Based on the plugin reference in the petition, the user wants the ability to upload images as avatars. There’s no mention of additional options of local avatars, like initials. Do you think we would ever consider adding uploading functionality for avatars?