Allowed memory size of 134217728 bytes exhausted in system\image.gd.inc reported for styled images
128M is somewhat low for a Drupal install.  It may work well for front end pages, but I have found that it needs to be raised for admin pages.  I do not know where you get the recommendation that anything over 128M isn't recommendation.  That PHP variable is a holdover from custom PHP to prevent infinite loops from crashing a system.  And remember, it is a max value.  Page requests that use less will not get the full amount.

You are running into the problem because GD needs to load the image into memory to process it down to 800x400 before saving it to disk and serving it up for display.  The problem isn't as much the file size, as what it will decompress to and occupy in memory.  When you start doing the math on big images (multiple width x height x 4), you will see that, 128M is way too low.  When the style has already been made, PHP never gets involved.

I believe the ImageMagick library will end up using the CLI convert utility, which can save PHP memory, but I don't recall the last time I actually tested this to be sure.