An upgrade to a new version of a debian system will replace nearly all old packets, deinstall no more needed packets and install additional ones. It must use the old configuration (-files) and adapt them to the updated needs. This all is a very complicated task and needs clean defined dependencies of the packets. Debian with its packet manager is able to do this.
To get an idea how many packets are touched you can list all with:
rpi ~$ dpkg --list
On my raspbian stretch I find:
rpi ~$ dpkg --list | grep ^ii | wc --lines
The default desktop on raspbian stretch is
lxde with its dependencies:
rpi ~$ apt depends lxde
rpi ~$ apt rdepends lxde
All the listed packets have also dependencies and so forth. For example look at
apt depends lxde-core. I tell this to give an idea what happens on a
full-upgrade. This is developed for Debian and it is not surprising when it does not function 100 % for Raspbian. Anywhere they have overseen the dependency to install the default desktop for Raspbian instead of installing the default desktop for Debian.
To install the default desktop of Raspbian you can try:
rpi ~$ sudo apt install lxde
You should be able to switch to other desktops but I never have tried it (I prefer the command line ;-) I don't know if they have found all dependencies to work correct on raspi hardware. Try it on a backup.
rpi ~$ sudo tasksel
You will find:
[ ] Debian desktop environment
[ ] ... GNOME
[ ] ... Xfce
[ ] ... KDE
[ ] ... Cinnamon
[ ] ... MATE
[ ] ... LXDE
GNOME and KDE are heavy weight and may be slow on a Raspberry Pi.