mw.title.new('Media:' .. image).exists calls to check only the existence of media files are very expensive. A single call takes about 5 ms, and if there are about 100 calls—which is a realistic count—then it takes half a second of Lua computing time. The main cause for these expensive calls seems to be the creation of the file object which is not needed in many cases.
At Wikivoyage we need images to present them on maps. That's why the images are mostly not shown in the article itself, and authors cannot easily check spelling errors for this reason. The check is to be done in the template or Lua scripts themselves.