It's really about footprint: with one exception you don't really need any of these deps in certain limited setups: when you run systemd inside of a container for example.
You wonder about that one exception? That's util-linux' libmount API. We actually need it for the service manager to run, so even though it's now a weak dependency it really isn't if you run the main systemd binary. You might wonder why bother then? The reason is to ensure that libsystemd.so…