Upgrading a system always carries some risk of breakage. And can be a lengthy process if not already at the latest version, much longer than a fresh installation.
This would also be *extremely useful* in enterprise environments, as it gives a quick recovery path if something fails during the upgrade. And also give lots of re-assurance that you won't end up with a non-functioning system.
If there is a possibility to import/export the installed package list of apt, then doing that and copying your home directory should do it. One of the two systems must not be permitted to upgrade grub.
If grub used /boot in a portable manner, then so long as /boot was its own partition, enabling it to be properly shared between the different "systems", there should not be any problem running grub from both.
If grub could extract its configuration into files, such that one could grab the current config, update it, and store the new version, there would not be any problem running grub from both, so long as some form of revision sanity was performed.
@vexorian - that's basically what I do on an individual machine. But it's still a messy process to duplicate the set of packages on the new partition.
One point I didn't make clear, was that I'd like the clean-partition installation to be done without needing to stop the current system. Especially for a server; having a single re-boot installation minimises downtime.
The problem with the existing proposed solutions is that they don't take into account all configuration. In addition to copying /home and the list of installed packages, you also need to backup /etc and probably portions of /var. Otherwise, you'll potentially lose a lot of configuration. However, once you try to do a clean install on top of an existing /etc, you're liable to have problems. So the solution here isn't as simple as one might imagine.
Only backing up /home and the list of installed packages would be harmful because it would lead people to assume that they'd wind up with basically the same system, when in fact they could easily have a system that's configured quite differently. This is especially a potential issue for servers.