It's not so simple to cache misses - you don't know if it's a real miss or some kind of error.
For example if Facebook cached the miss, then even when they are back up nothing would connect.
In the past I was the architect of a top 2000 alexa ranked social networking site, data synchronization delays were insane under certain load patterns high single low double digit second write propagation delays.
This tends to be beneficial regardless of the root cause.
edit this is especially useful for handling search/query misses as a query with no results is going to scan any relevant indexes etc. until it is clear no match exists meaning a no results query may take up more cycles than a hit.
Even if you assume Facebook's own apps have reasonable failure logic, there's all kinds of third-party apps and devices integrating with their API that probably get it wrong. Surprise botnet!
But if the request does not resolve there’s no caching, the next request goes through the entire thing and hits the server again.