As a programmer who founded a Digital Advertising and Design group this past year with a very talented designer, you couldn't be more wrong.
As a programmer, I have much more leverage when selling my services over that of a designer. There are a lot more "designers" out there than there are "programmers" and people use that to their advantage.
The fact is, you can go with cheap design because "it works" for most people (that's not to say it sells). However, with a cheap programmer there are a lot of the times that the code doesn't even work. That's the difference, and IT IS exploited.
Edit: That's not to say a designer shouldn't come along and contribute to this - I`m merely defending no-spec, which I agree with.
You can design for free, but don't do it with the anticipation that you will earn a living from winning the spec contest, do it because you want to support the project. This is much like a programmer would commit to an open source project.