I seriously doubt that Adobe made the spec all spaghetti'd on purpose. They probably just kept hacking on new features without cleaning old code, and eventually someone went "Our spec is a nightmare!". At this point, someone with decision making power considered things for a brief second, squinted his eyes, and said "good."
That's why I said "to some extent". I agree that they did not intentionally plan to f* up their code. But I'm sure they could have been refactoring their spaghetti at some point, but obviously they didn't.
The code may be beautiful, but the documentation is garbage. It's garbage because nobody at Adobe uses it, and very few care about 3rd party development. Furthermore, there is ambivalence there about encouraging understanding of the file format (which is perhaps why the documentation is very partial) and definitely real fear and loathing on the issue of people emulating the Photoshop plugin host interface (if they could make that illegal, they would).
Business as usual in big monopolist land, really. The minnows will eventually bring them down anyway.