That'd break a lot of mods... Can you give a good reason why?
It would break a lot of mods... but unfortunately, the keyword is precisely that,
mods. What I'm advocating here is for code sanity, a basic security and stability principle. A DLL is essentially a "sub-program" or code snippet that directly references the memory via pointers during execution, with generally unrestricted access to that program's memory space. A graphics driver, which operates in kernel mode, should never be resorting to petty hacks and much less modifying userland/non-privileged code on the fly. This is why standardized APIs exist, after all.
Once you understand that, you'll basically know exactly what I am trying to get at. By intercepting a DLL and redirecting or replacing a code function in real time, you're essentially modifying the expected behavior of an application
on the fly. This can (and likely will) cause deadlocks, race conditions, memory leaks, crashes, data corruption, fun stuff. This is different from properly
loading a DLL (e.g. LoadLibrary instruction or injecting it at the correct point during context creation, in a known-safe load address and in the correct order of execution), which in practice, at least
should allow exceptions to be handled more gracefully. Microsoft explicitly states that you should never create a process or use managed code in their
DLL best practices guide.
Of course, this primarily concerns Windows. It's interesting to note that this is a genuinely
benign use of DLL interception, but it's mechanically no different from malicious
hijacking (a term I intentionally avoided using) of a DLL. I'm no programmer and I know this.