> I'm not talking about package/distro maintainers, I'm talking about the
process of compiling software in general.
No, when you're referring to what Debian package require in order to be
installed, you're talking about packages. Compiling is not even involved in
that process.
> Is not the whole purpose of the 'configure' script in practically every
source package to check and see what software/libraries are installed on a
user's machine and then send the appropriate flags to the compiler to tell it
what libraries to include, when it builds the binary?
No, that's not the whole purpose of Autoconf's "configure" scripts. These
scripts probe the system to see exactly how the software can be compiled, and
also give the user the option to change how it is compiled. But package
managers don't compile, so they don't use that. The binary is built on a
generic system with specific settings, before ever reaching any user's
computer. Therefore, this has nothing to do with the optional dependency of
packages on systemd.
> we already have a tool that can probe to see what is installed on a users'
machine
No, we don't. All Autoconf checks with its configure script is for the
presence or absence of libraries, and this is 100% insubstantial to the point
that one binary can only be configured to use or not use a library. If you
have compiled Project: Starfighter with sound support using SDL_Mixer,
SDL_Mixer is not optional anymore. To make it unnecessary, you need to
recompile so that the binary doesn't link with SDL_Mixer.h, and package
managers don't do this (with the exception of those such as Gentoo and Guix
which do).
Let me put this as plainly as possible: at run-time, in C and C++, it is not
possible to link to new libraries, or unlink from old libraries. In order to
do that, you need to recompile, and not every user's system has a compiler
and all needed library headers installed on it. In fact, most don't. So if
systemd was turned on and off by compiler flags, within a package manager
such as Debian, the entirety of systemd would be required by any package that
uses any component of it, regardless of whether or not that program is
capable of running without it, because the only alternative (maintaining
multiple versions with different compiler flags turned on and off) is
unfeasible.
This is really basic stuff. If you're going to argue these points, I would
appreciate it if you actually understood the basics of software development.