I'll preface this by saying that I do NOT fancy myself a programmer. I've taken a couple (i.e. 2) programing classes along the years, though, so I at least have a general idea of what these guys have to deal with. As a programmer yourself, tm, can you honestly say that you've never made a mistake? Small, seemingly insignificant typos can cause huge problems for a program. Can you also claim that you've never gone back to an old line of code and realized that it could have been written more efficiently? Perhaps you had a deadline for a class project and your teacher was breathing down your neck to get it done by the release date. (*wink wink*)
I actually am a lead software designer at my company so I do know how hard it is to get EVERYTHING right. And of all my programming buddies at other companies, we all know what it feels like when you simply do something stupid... not because you are stupid, but because of constraints and stress, things just get lost in the shuffle.
Thinking of a massive undertaking like a flagship commercial gaming product like Civ makes my head hurt... considering that you're writing a huge, complex game being used by millions of people hammering away at every little piece and module you write.
Large pieces of software that have silly mistakes are NOT because they're being programmed by "dumb programmers". It's because there aren't ENOUGH programmers to cover the task. Calling Firaxis developers stupid is absolutely unjustified. EVERYONE makes mistakes, and it takes the combined effort of company to assure those mistakes don't make it to the final release (that includes not only developers but also QA, testers, management, etc.). However, if you have a team that's simply not large enough for the project, your team can be brilliant, but if it's simply too massive of an undertaking, your product WILL have errors. Alternatively, if you just don't have enough time, errors WILL pop up. "Stupid" errors pop up all the time even from the best people. Furthermore, if those people are overworked, stressed, up against massive pressure, or there simply aren't enough man-hours to test and cover every little thing... obviously, that's no better either.
So people should really be blaming Firaxis for incompetently managing the project and the final product, not the individual programmers. Or, alternatively, people can blame 2K for imposing deadlines. Or people can blame whoever is to blame for not ponying up the cash to hire enough people for development, QA, or testing. And yes, people can blame a little bit on the developers for missing some things... but blaming ALL of it solely on the devs is misguided and unjustified.