Recently, we had a new member point out that the Profile module didn't show a user's avatar unless the gravatar option was enabled. While this was quite simple to fix, once it was brought to our attention, it is an example of how tightly coupled some of our code really is.
Users are a core functionality and Gravatars are enabled as part of the core preferences - modules should be able to assume that calling a core function will return an appropriate response based on the core settings. Modules should not have to check for any dependencies of those core functions. Any module, the Profile module included, should be able to send a request to the core to retrieve a user's profile image and not care where it comes from - a default image, a gravatar, or a user-uploaded image (maybe even a Google+ profile image or Facebook profile image in the future).