I assume it's an intentional trade-off by the devs to reduce the storage burden. If each instance is a complete mirror of all federated instances then hosting becomes that much more expensive.
Instances have 3 options. Save it locally, proxy it, or do nothing. Saving every federated image is not feasible for small instances. It's not a fault of the protocol that instance operators don't want to pay a thousand dollars a month for storage. Matrix has this problem, and look what happened to them: tiny instances are expensive to run, so don't flourish.
Depending on how the admin has pict-rs (the "subsystem" it uses for media) configured, post images can create local copies /thumbnails for image posts. Some instances opt to do that, some don't.
Other images like ones posted a comments, user/community avatars/banners aren't stored anywhere except their home instance.
But yeah, even the limited caching has proven problematic if questionable/illegal content gets posted.