Another good solution would be for the inventory to not send in its entirety, but only send the difference from the past 15 seconds. Either the game client can report to the server, "No change, forget about me and move on to the next guy", or it could send a hash of the inventory contents (perhaps per tab, how often do you change the crap in that first tab anyway?) to compare against the data stored on the server. Such a hash would be counted in bytes, not kilobytes, and only force an update if it's not a match for what the server has.

There are numerous ways of doing a quick check to save data; perhaps Square is a bit blinded by the insanely awesome net connections in Japan.