A problem with opportunistic caching would be degraded user experience for the first user that sees some specific piece of content, since they'd have to wait (potentially for seconds) for their instance to fetch the content from the origin instance.
pleroma's media proxy is works just like that and the user experience is fine. actually, i've run instances that don't have caching configured and it still works fine (if a bit unfriendly to other instances).
A problem with opportunistic caching would be degraded user experience for the first user that sees some specific piece of content, since they'd have to wait (potentially for seconds) for their instance to fetch the content from the origin instance.