Although in fairness, the reason for this is that Windows will do a much more comprehensive search for libraries. This increases flexibility but also adds more opportunities for an attacker to slip in an evil DLL and hijack the process.
Applications can control the location from which a DLL is loaded by specifying a full path or using another mechanism such as a manifest. If these methods are not used, the system searches for the DLL at load time as described in this topic.
docs.microsoft.com
If you're missing a library on Windows, or have a conflict, you can always just dump some DLL files in alongside the process if you really must.
You could emulate this behavior on Linux by adding . to LD_LIBRARY_PATH before running a binary,
if you're willing to accept that behavior for every module in the process. But that seems unwise to me, considering that most Linux projects are not built and tested that way.
Seems like the leading solutions at the moment are sandboxing (containerization, "jailing") via AppImage, Flatpak, etc, which essentially package up all the library dependencies and provide a cleverly-crafted chroot-esque environment where those libraries are available at the standard library locations.
Whether that's "sane" I leave to the reader to decide.