I've just read through this thread, hoping, hoping, that someone had found a 'great' (or workable) solution. Alas, it isn't so. I'll add, though, that in the VS6 days source control was integrated, truly integrated into the interface such that when opening up an SP, its contents were checked against the VSS version and the user was warned if different.
Now, I wonder if a solution for storing changes might lay with DDL triggers firing off a CLR assembly that interfaces the VSS API. Too bad my skill-level isn't good enough, and time is too short. But: maybe someone can make their million?
Just a cog in the wheel.