Unintended Consequences by Another Name

Part of designing systems is making trade-offs.  You give up some things to make room for other things.  Your goal is to “optimize” the system in some sense.

This process generally works well, provided that you have a good understanding of what effects the changes will have on the overall system.  Sometimes, though, systems reach a degree of complexity where you don’t have that level of understanding.  You change something and the result is something unintended – so-called unintended consequences.

You could also describe these as unexpected trade-offs.