If you want to be a developer and you're goal is to give your three kids a good life, drive that BMW 5 series, and own a $500k house, then you should be a .NET developer. The math is simple and I have a mountain of data that supports the reality that .NET developers get paid significantly more (20-30%) on average than any of the hot whiz-bang alternatives (Ruby, PHP, Java, etc). The average mid-level .NET developer in a dev-friendly town (san fran, boston, new york, etc) is making $80-90k, Senior $90-110k, Architects $110-130k, Director/Managers $130-160k. Those are averages that don't include bonuses. There are of course exceptions (finance industry add 20% to the above figures, start-ups subtract 10%, etc).
Never underestimate the position that money holds in ones relationship with their chosen path in life.
I think the authors argument is valid and is the reason why most of the developers that leave the .NET world do, but my observations indicate that most .NET/MS developers are lifers.
On a side note, I actively practice development in.NET, PHP, Java, and a few other languages at my 9 to 5. I like to think that I'm fairly unbiased.