I can see what you are saying but I see SEO a bit differently than being simply good web programming. It's about content organization as well as information flow. Some of the time that comes naturally to a webmaster, but there are so many content rich sites with poor web programming and poor organization. SEO is a niche side of web programming that fixes that specific problem. The skills of an SEO sometimes don't even cross the mind of a "good" web programmer because of the unknown unknowns factor. They just haven't thought about even attempting to rank a website on Google. They aren't investigating the competition to see where they fit, and how to be better.