How "safe" (from a best practice and supportability perspective) is the use of DLL injection techniques?

Another question in internal discussion.

Here is one reply:

Subject: RE: DLL Injection

DLL injection is never safe. You're talking about squirting code into a process that was never designed, built, or tested by the process's author, and co-opting or creating a thread to run that code. You run the risk of creating timing, synchronization, or resource issues that weren't there before or exacerbating issues that were there.