It’s sad, but I think you’re right.
I assumed/hoped that Lemmy’s architecture was more decoupled.
According to the ChangeLog, it hints that the image reverse proxy is built-in, maybe using Pict-rs.
Which certainly reeks of Not Invented Here Syndrome, as image uploading/storing, reverse proxies, and caching is a well understood problem.
I think it’s related to this issue (re: lemm.ee is fetching and caching images (to improve performance) , but often get is throttled (because the Lemmy’s cache implementation was not designed to work with larger Lemmy instances ), which results users seeing broken images).