I think it would be great to be able to optimize for storage, but I think it's also important that the history of a project remains stable. If you remove the data from a changeset, it would be impossible to switch to that changeset and view the project as it was at that point in time. Not all changesets are that useful, though, as evidenced by uploading several alterations of a photoshop document in a single day, so as long as it's done in an orderly fashion, I'm happy.
Of course this means you are in single branch, right. How would this work with multiple branches?
The "super changeset" can be simply a labelled one. You know, you can label changesets.
So the rule would be something like:
If you look in the branch explorer and view "only relevant" changesets, all the changesets that disappears I'd say are eligible for removing the data from. So all inbetween-y changesets after some point should have their data deleted can be a general rule.