Why does installing different desktop environments break things?

Generally it shouldn't matter. Different desktop environments should have their own config and not interfere with each other. There are however some corner cases:

  • Some desktop environments are forks of each other or based off the same origin. This is the case for gnome2/3, unity and cinnamon*.
  • There are several competing gui toolkits, the main two are gtk and kde/qt. Both style their applications differently but there has been allot of effort to make kde applications look like gtk ones under gtk window managers as well as to make gtk applications look like kde applications under kde. Installing both can mess with these stylings.

But most of the time it should be fine and is mostly down to the distro you use/the configurations you have done. For example, I have had no problems running several different desktop environments/window manager in archlinux or years ago when I tried ubuntu with both kde, gnome and a bunch of others installed.

My guess is you were unlucky with mint and kde - I believe mint do some heavy stylings of their applications and messing with different desktop environments could be problematic (I do not run mint so I cannot say for sure).

As for unity and cinnamon; they are both shells of gnome 3 and so both rely on the configs of gnome 3 so can interact with each other. I cannot really comment on how these are meant to interact with each other or how much isolation different gnome shell's should have as I do not run either.

Additional desktop environments break things by modifying configuration files hidden in your /home/user folder. Your primary desktop environment expects a certain configuration and it sometimes doesn't adapt well to modifications done by another DE. These modifications occur (on your user folder's config files) upon logging into the additional desktop environment for the first time.

If you're only adding additional DEs to play with them, you might consider creating additional user accounts for each DE you add. Then, only login to the additional desktop environments using the corresponding user accounts you've created for each of them, respectively.

This way, upon logging in (to the additional DE), it will only fool with the /home/testUser account's .hiddenConfigFiles, and leave you primary user account's config files alone.