It's also important to distinguish between day-day coders who write CRUD apps (trainable skill), and developers who develop platforms that others build on.
Another way of looking at this - by providing significant rewards to top-end developers (and top end developers should be starting around $500K, and be making north of $1mm with 5-6 years of experience in their chosen vertical), you encourage outstanding individuals who might chose another field where they might be more richly rewarded (Law, Finance, ...) to put their skills to good use in programming.
And that's the crux of the matter - I don't believe we should provide outsized rewards to developers with exceptional talent because they deserve the extra money - I think everyone who works a 40-hour week deserves a comfortable, stress free life. I believe we should provide outsized rewards to developers with exceptional talent so as to ensure efficient allocation of capital and labor, resulting in economies with increased productivity, and greater rewards for everyone interlinked in that economy.
From that perspective - I guess I agree with you, we are all cogs working together to make this amazing machine -I just want to make sure the right cogs are allocated to the right machine.