I don't disagree with your point in general, but it's *NOT* so easy for a "decent" programmer to ramp up in a new language doing anything of decent complexity. It takes a good bit of time to get comfortable with a language and the libraries available. Getting something work at all is one thing, having enough comfort that you don't want to re-write everything now that you "know better" is entirely different. The latter isn't a matter of a few weeks, even for someone that's "above average".
I've seen this process over and over in the development world. As a side note, there is no question in my mind people who've worked at a slightly lower level (IE - C/C++ programmers) who've had some real experience with memory mangement/pointers, generally have a FAR easier time moving to Java/C# than vice versa.