With legacy systems, at least the complexity was somewhat anticipated early in the design process (even if it was incorrect).
With automatically generated code, you get something that "works" but with a much vaguer underlying model, which makes it harder to understand when things start to go wrong.
In both cases, the real cost comes later, when you're forced to debug under pressure.