There are different situations (perfectly reasonable and legal package install/removal use cases) that may cause this situation.
For example, after installing g++-6 (parallel to g++-7) in Xubuntu 18.04, I overlooked that some meta-package dependency became unsatisfied, therefore marking a whole bunch of vitally necessary packages as "autoremovable"
Looks like this:
These packages are definitely not safe to autoremove!The following packages were automatically installed and are no longer required:
g++ g++-7 gir1.2-harfbuzz-0.0 gir1.2-ibus-1.0 icu-devtools libapr1-dev libaprutil1-dev libasound2-dev libatk1.0-dev
libatkmm-1.6-dev libboost-filesystem1.65-dev libboost-regex1.65-dev libboost-signals1.65-dev libboost-signals1.65.1
libboost-system1.65-dev libboost1.65-dev libcairo-script-interpreter2 libcairo2-dev libcairomm-1.0-dev libcapnp-0.6.1 libcpufreq0
libdbus-c++-1-0v5 libdbus-c++-bin libecore1 libegl1-mesa-dev libeina1 libepoxy-dev libfontconfig1-dev libgdk-pixbuf2.0-dev
libgles2-mesa-dev libglib2.0-dev libglib2.0-dev-bin libglibmm-2.4-dev libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0
libibus-1.0-5 libice-dev libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libldap2-dev liblog4cxx10v5 libmirclient-dev
libmirclient9 libmircommon-dev libmircommon7 libmircookie-dev libmircookie2 libmircore-dev libmircore1 libmirprotobuf3
libpango1.0-dev libpangomm-1.4-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libprotobuf-dev
libpulse-dev libsctp-dev libsctp1 libsigc++-2.0-dev libsm-dev libsndio-dev libstdc++-6-dev libstdc++-7-dev libudev-dev
libxcomposite-dev libxcursor-dev libxft-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxss-dev
libxt-dev libxtst-dev libxv-dev uuid-dev wayland-protocols x11proto-composite-dev x11proto-randr-dev x11proto-record-dev
Use 'sudo apt autoremove' to remove them.
Now I have to find out which dependency broke this to let my apt know that these packages shall stay.
To be continued...