As I mentioned in another post, sometimes it becomes a rite of passage, especially if you are put in a situation where you weren't properly mentored/checked. I've only left one real 'mess', it was a smaller one and mostly because I left the org before we were able to get to the final state. However I gave plenty of notes to make sure they could finish it up.
On the other hand I've managed to build a good career out of being the guy who shows up after a mess is made, and cleans it up. (BTW, this is not a bad spot to be in if you like learning either, you will get good at actually -reading- code, other people's code. And, all the crazy stuff you see, eventually you start to realize there is a -right- way to use some of it. :)
One thing about the software -development- process (be it software engineering or something else) is that there should still be some form check/balance to avoid insanity. As an example, at the moment I'm working on some performance stuff for an open source library. But there's a certain point where I said "I'm stopping here, any work onward is going in a new branch, since it's going to be impure to the rest of the project and IDK if that's what people really want, even if it's a decent gain". Common sense.