Perhaps, an effort at rationalization on my part, but this entry from one of the resident contributing writers at tennis.com (in response to a Djokovic fan) eased things a bit --
Andrew: There's a short term and a longer term answer to your question, how can you explain what happened today? Short term, Fish played pretty well apart from his first serve percentage - his second serve had lots of kick, and he did vary the placement. And Federer, for whatever reason, just wasn't timing the ball well today. One guy played well, one poorly: that was as close to a C game as I've seen Federer have, and if Fish brought an A game to the dance, he went home a winner.
I don't think Federer fears any player - not Djokovic, Nadal, Murray or Nalbandian. I think he acknowledges that in any match, he can walk off having given best to an opponent. Today Mardy Fish was that opponent. He played well.
Longer term, is this part of a bigger pattern. I think the answer is the Scottish term "not proven." My guess is Federer won't enjoy another two years like 2005 and 2006 - but that is an impossible standard. For the next three months, all the way to RG, Federer is in recovery mode from a serious illness.
It's not a recovery from two months on his back, but it has knocked out the fitness that was one of the ingredients of semi-invincibility. He's mature enough not to worry about the headlines, and he'll play himself back to his peak level. No match with Djokovic tomorrow, which is a pity. Many more to come, I hope.