Normally I would never jump to that conclusion, except for Sylvain’s comment that this was “already fixed in SDL2”.
Since posting, I have (finally) managed to cross-build SDL2 for Windows from source, and I can verify that the bug no longer occurs in the latest mercurial snapshot (2.0.11-13399). So I will probably hack around the bug until 2.0.12 is released.
Sadly, this does not fix the bug. Which is too bad; it seemed like a reasonable explanation.
I’m also surprised to learn that there’s a function called SDL_RenderFlush(), since I literally spent half an hour looking for exactly such a function while I was trying to understand this issue. I guess that’s what I get for actually reading the documentation, instead of the include files like a chump! However, having read it now, I would have been very surprised if it had fixed the bug, since none of the listed prerequisites for its use apply.