This is an idea that, if it would be implemented, should be optional at first and be tested through and through. It's quite experimental in my eyes. I'm not even sure if this idea can be executed at all.
When you use a system it will always become fuller and fuller. Although Linux doesn't suffer as much from this as Windows, it can still make things harder to find and influence the performance( a lot). A way to solve this is to regularly clean your system by removing all unused applications and manually search the whole system for files that were left behind. Sometimes the --purge option when removing software still leaves stuff behind and let alone compilated programs.
What I suggest is to create temporally views of the whole system as it should be. Every once in a while the system will return to that state with the exception of the user data, leaving alone the configuration but also deleting all unnecessary configuration files. In a more advanced stadium applications could be adapted to work together with this system and update their view files automatically so the user doesn't have to create a view every time he updates the computer or installs something new and it will probably include less unnecessary files and be able to handle already existing configuration better. This way a user can easily restore his system very easily reducing the need for backup applications and if the program would be a little bit extended and get support for GNOME's lock-down editor it could also be used in labs.
A view ideas behind the technique that could be used to do this. I'm not sure if what I say actually makes sense, but I'll try to let it.
I think it would be the best if a basic image/view of the whole system would be delivered when the system is installed. At least this image should be kept to allow the user to restore his/her system easier to the original state. Here you've probably got a question. Because, when you would keep all files, your system would be twice as large as normal, _at_least_. And we don't want that. I've got three ideas how to solve this:
1. Create a central mirror where the files are stored. There are two options here: a mirror owned by the user or a mirror from Ubuntu/Canonical. The latter has some huge downsides: you'll have to upload all files to the server, which won't make your ISP happy. And it would cost an enormous amount of space at the server.
2.Do store all the files on your harddisk, but do it in the way of some kind of Bazaar repository, so it isn't as big as keeping all files.
3.Keep offering the old .deb files and just keep a list of installed programs. The .deb files themselves know what files they supply, so their lists can be used to check for unnecessary files. This only leaves the problem for compiled programs and other possible files that will be deleted if just the .deb files would be used. I think the only solution would be to add those files manually with a nice GUI. All used programs are listened in a file with their dpkg name, version and repository.
I think 3 would be the best. This would also allow users to easier get back to their old version when an upgrade fails.
Of course the cleaning of a system should be done really careful and the user should be completely informed of all files that are going to be deleted and warned if it are important files or if it's mentioned in configuration files(should the entries also be deleted from those files?). The option to automatically restore shouldn't be easy to accidentally enable and the whole recovery thing shouldn't be enabled in the first place.
Any thoughts on this long idea?
NB: I got this idea while I was installing Radmin, maybe it can be of any use. Either as source of inspiration or as a source of code.