I did some digging around, and I'm pretty sure this is happening because of a new feature in Safari 5 (more specifically, it's new to Webkit2) called "multi-process windows". You can read some info about it
here, but the essential point is that Safari now runs on two separate processes -- one for the user interface (the "UI process"), and one for the content (the "web process"). If any page misbehaves, it can crash the web process, but instead of causing the entire application to quit (which is what would have happened in Safari 4 and earlier), Safari now just silently restarts the web process and then reloads all the tabs you had open.
That's great in theory, but for whatever reason, the web process seems to crash or hang quite often; I see Safari 5 suddenly reloading tabs far more frequently than outright crashes used to occur in earlier versions. The net effect is that this feature that's meant to make Safari
more stable has so far caused a lot more problems than it has actually solved.
Anyway, if you enable the Debug menu in Safari (you can do this with TinkerTool or any of several other similar apps), there's an option in that menu called "Use multi-process windows". I haven't tested it yet (I don't have time at the moment), but disabling that option might stop this "spontaneously reloading tabs" nonsense from happening. I'll look into it later and post a blog entry if I can confirm that this solves the issue (in which case I'll come back and post a link to it in this thread).