conflating revisions… I think that this is unneeded, and in fact probably harmful.
Its not needed because (generally) if the amount of history is large enough to be of concern with todays systems, its either a very old project (i.e. coreutils with 20K revisions on its mainline (which is trivially handlable today)), or a very active project where the bulk of history is, well, recent. The cases where you have lots of old history and a slow rate of growth are the exact cases where our technology will outpace the projects accumlation of history.
Its harmful because it violates one of the basic things users expect from a VCS tool – the ability to get their code as it was.