> Gopher
Nobody said anything about non-HTML markup. This is a straw-man argument.
> form of support
The entire point of implementing a proper progressively enhanced design is that you don't need to add extra support for older browsers. Handling missing features is important because "older browsers" isn't the only time errors happen.
Progressive enhancement is mostly good error checking. You should handle missing JS features (or missing JS entirely) for the same reason you should be checking calls to fopen(3) for NULL; skipping that check means you simply fail badly on errors. A webpage that sends an empty body tag is similar to a traditional program that crashes without any error message because it tried to use a NULL file handle when opening it's config file.
If your tools aren't handling a lot of this for you (Rails has since very early versions), maybe get better tools or maybe bug vendor?
> usable interface
Nobody expects identical functionality when the JS doesn't load. Obviously, some features won't work, and it may not look as nice. Choosing exactly how to handle an error condition is one of the many design decisions programmers have to make. Skipping optional features like dynamic page rewriting (pjax or even simple remote ajax forms) may be slower, but skipping those features and leaving links/forms as traditional page-reloads is a better way to handle a failed JS download than blocking the entire page with an error message (or worse: leaving the person who visited your site with a blank page).
// I suspect that a lot of the "interface" that is apparently so important to get right is advertising.