The “Bluesky API” is the appview, but the avatar is stored in your PDS. Even if you’re using a PDS hosted by Bluesky, it’s a different component that’s being asked to serve the avatar.
That does look weird to me. I would expect it to more generic because this would be miss data stored in PDS outside bluesky. At least according to my layman understanding.