Why does Safari cache old pages on iPhone even after you've downloaded the new page?
I would imagine this has something to do with Core Data, memory warnings, or both. If Apple is using its own kit, then it is saving the cache in a Core Data store, which is, essentially, an unordered set. My theory is that when you go to a site, Safari is going to the Core Data store and grabbing the first instance of the URL in question if it exists, which can be old, new, whatever. But since I also don't think that Apple would be nearly that sloppy, I'd say that every page attempts to cache, but the amount of data required to properly cache a site is beholden to memory warnings, which you, as the user, should never, ever see, only this time the newer page simply doesn't get cached and that's why you get random older pages in view.

Okay, that was a bit technical. In short, I think Safari attempts to maintain a clean cache, but memory limitations of the device don't always allow that to happen.