Although I enjoyed your argument, I believe there's an angle that you are overlooking. Programmers will not become obsolete. Programmers will become specialized.
As fields related to programming evolve (robotics and AI), I think you'll see that the original programmers will be building their programs off of a more advanced foundation.
Think of the real world example of how robotics are taking over some human jobs. The humans that used to work those jobs may have been pushed out of work (think of lights out warehouses), or maybe their jobs are now more specialized.
My own cubicle job has evolved quite a bit since programs have become more efficient. We're much less paper based now, and I do far more work in less time due to the amount of software/hardware in my office. Some rudimentary parts of my job have been made much easier by programmers that worked hard to improve office software over time.
I'll see if I can post about this in more detail. Thanks for your thought provoking post.