It's a good question - why does one need so much SRAM. I decided to create the SRAM expansion shield, based on Andy Brown's design, because of a GPS Disciplined Project I'm working on. (You can see some of the results at http://www.aethersdr.org
The two core reasons are:
1. The messages from the Jupiter TU60-D120 GPS receiver that I'm using can be quite long, i.e., 264 16-bit words
2. I prefer to program in C++.
The messages from the GPS receiver are certainly not all 528 bytes long, although many are long enough. It's just that one needs to have enough memory available in case one of these is to be processed. And dynamically allocated memory is not ideal, unless there's plenty spare.
As for programming an Arduino Mega in C++, I can understand that many might see this as a folly. But it's what I'm quickest doing development in and anyway, why have layers of abstraction if one can't work at the level they want.
(If exceptions were enabled for the compiler for the chipset, I'd be fully using the boost C++ libraries...)
I've also been using the QP state machine framework for the project, which really has made things easy, but of course takes up more RAM.
Anyway, there you have it. Hopefully my efforts for this shield are of use to other developers.