This happens at least when using any sort of frontend caching, like varnish.
Steps to reproduce:
- Create a page that embeds an image that currently doesn't exist (using [[File: xxxx.png]] syntax)
- Visit the page using private browsing, as anonymous, so the page gets cached
- Edit the file description page of step 1, redirecting it to a file that actually exists (using #REDIRECT[[File: filethatexists.png]] syntax)
- Wait until all jobs are run, and then repeat the step 2
Expected results: The page now displays the image correctly instead of a red link
Current results: The page displays a red link in place of the image until the page is manually purged or edited.
Note that uploading an actual file instead of creating a redirect works as expected.