…, labelled, initialized and so on. One prominent library which we do link against that used to do horrible shit like that, is libselinux btw. They fixed much of it, but still use ELF constructors/destructors these days, and they really shouldn't.
Now you might say that not all projects are systemd, that we are a special case, but there are many other problems with it:
There's no ordering defined in which constructors/destructors are called. Or at least not a useful one: it's "topoligical".