*laughs hysterically*
Does that answer your question?
Honestly, most of the time, I just want a directory into which I can dump the necessary files. I do not want to have to muck about with batch files and managing the correct set of environment variables on a per-project basis because they all want mutually exclusive sets of libraries and tools and refuse to support any kind of local, file-based configuration.
Also, another thing I forgot: some bindings will only work with specific versions of libraries. Aside from nix (and presumably the GNU knock-off), my understanding is that unix package managers don’t generally allow for installation of specific versions of libraries, just the current one that’s in the repository. In that sense, even with pkg-config, you probably want some fallback mechanisms anyway, since an important point for Cargo is the ability to do reproducible builds.
Regarding your edit: it does, until it doesn’t. I mean, MSYS2 has pkg-config, but I’ve come across numerous libraries that use pkg-config, but not on Windows, even with the GNU toolchain. Or, heck, I’ve found libraries that do, but the Rust bindings don’t for some reason.
… now that I think about it, I hate crates with native dependencies. I really do.
Edit: Oh! And let’s not forget libraries that use different names on Windows. *goes to get a bottle of whiskey*