Free in what way? I was under the impression that you were paying with your attention (displayed ads) much in the way that you do with 'free' over-the-air television.
I had my disclaimer, lol. As I already clarified some where else, these points are what I learned from what I was doing in the last few years, consulting for my customers modernizing their web sites/apps. And thanks for the advice, in fact I'm surviving pretty well ;)
As there are lot of comments here, thought about clarifying few points in that article
1) About clean separation of concerns.
A lot of customers expect you to cleanly separate your client side javascript/css/artifacts from your server side implementation. Even to an extent where you can just take it and repackage the same with minor modifications using a container like Phonegap, and distribute it for mobile devices later. HTML5's significance is beyond web - it can take your app beyond the browser.
2) About the REST Layer
Anyway you are investing in building a web application, so you need to ensure the plumbing portion is re-usable beyond your traditional 'website'. If you want to build a native phone application or a Chrome plug in tomorrow, you should be able to use the same service layer.
The number of devs I hear complaining about "but but but... I want my webforms!" when confronted with "use a client-side JS tool with REST/AJAX/etc" is staggering. How do they think the rest of the world works?
Adopting these 'new fangled' approaches will increase their ability to move between worlds - perhaps even leaving the .NET compound from time to time. And perhaps more importantly, it will make it easier for people already skilled in front-end JS to contribute more effectively on otherwise-.NET-only teams.
You will almost never find top-notch JS talent (freelance or full-time) who also know how to interop with webforms and older ASP.NET tech. Widen the pool, by changing your practices, and you'll be able to compete more effectively.
You can scale development teams and put re-usable patterns in place without pushing all your templates and view logic to the client. That's what libraries like Backbone are made to do, and I would agree it is generally overkill to implement a site that way.