It's a hard choice. I was recently involved in a project that was heavily focused on progressive enhancement - we started with a "standard" HTML app with forms and submit buttons. Every interaction required a full page load. Then we started using Javascript to enhance the UX in such a way that it still worked without Javascript. It was a long and tricky process, because progressive enhancement is inherently quite fra…
You would have saved a lot of time and frustration by building the single page app first and putting analytics on it to see how many non-JavaScript clients you where getting (most are surprised at how few the number is) and then if the number justify it, build out an older style UI separate from the modern web app that just proxies data to the same REST services, then use a sniffer to decide where each client goes. T…
And in regards to your comment on mobile: Agreed! Not only is getting a slick mobile client a much more important use of resources that stuffing around with progressive enhancement, but a good JSON/REST API is really really helpful when it comes time to get a mobile app working.
Thinking of webapps as client-server applications communicating via a JSON API is really helpful at the moment, I think.