I think what you said about theory vs reality is the gap of technical debt that gets created. It's a real and growing issue in any framework that is maturing.
If what is today's leading edge will be legacy in the next 8-12 months, can a codebase get established and create value?
It's hard to say. Other communities do this much better. Java is obviously the poster child for backwards compatibility, but Python is much better too. Ruby makes supporting multiple versions very simple in most cases, but there's no will to do so.
For my part, I avoid anything that's a Rails plugin now. Time after time, I've found them to be a problem. Even if you decide you're going to upgrade to Rails 4, you need to update your entire dependency graph in one pass. Plugins targeting Rails 4 almost certainly won't target 3.x and not all plugins are going to be 4 ready on release day, so upgrading piecemeal is impossible.
If what is today's leading edge will be legacy in the next 8-12 months, can a codebase get established and create value?