“All you’re really saving here is the cost of the client pinging the server for a new version and getting a 304 not modified header back in the common case that the resource hasn’t changed. That’s not much overhead… unless you’re Yahoo.”
That’s not exactly true. Part of the savings here is realized not by the person hosting the content but the person requesting it. If you’re an Indian visitor to a US web site, even a conditional GET is quite expensive. You’re making the request over a high latency, often flaky connection. We’ve seen this in Yahoo! Mail and it has forced us to squeeze requests and responses into as few packets as possible. The damage caused to user perceived performance by a single dropped packet on these networks, where round-trip latency is high, is quite noticeable to the end user, less so to Yahoo!.