StratumMP work payloads increase 67 bytes per power of 2 transactions. GBT work payloads increase by the size of the transactions being included in a block (roughly 250 bytes for a normal tx with 1 input, 1 payout address, and 1 change address).
Yes, I forgot the exponential factor involved here. However, with a local bitcoind, GBT can shrink far smaller than StratumMP. If bandwidth is a real practical concern for BTCGuild (or anyone else), someone (possibly me, if someone needs and plans to use it) could easily write a "Centralized Mining" extension for GBT providing the same bandwidth savings. Of course, keep in mind that GBT is
already going to use far less bandwidth than getwork, so this really
shouldn't be a problem. Remember that centralized mining moves the miner's authority
blindly to the pool operator, and thus creates a greater risk to the Bitcoin network. Health of the Bitcoin network is IMO far more important than saving a few KB of bandwidth here and there. So... as long as there isn't a practical problem involved, it would seem a shame to keep centralized mining going unnecessarily.
The biggest hurdle on implementing StratumMP is changing from constant HTTP connections and inefficient longpolling, to a static TCP connection. Beyond that change, StratumMP is a simpler protocol to work with and implement.
Yes, the biggest hurdle is
rewriting all the miner code actually relevant to the protocol at all.
GBT is more full featured, but your arguments imply that most mining software wouldn't bother implementing the full feature set to begin with.
Hopefully mining software will grow closer to full-featured over time. It's pretty important that mining become decentralized, at least.