The biggest problem with PID control is that the integral term performs double duty as both a signal that accumulates small errors to minimize the steady state error, but also as a signal that shows deviation from the target due to unmodeled constraints.
It should be pretty obvious that you cannot overcome constraints by moving even harder in the direction of the constraint, which is what the integral term does.