The norm in the community is to actively refactor.
That's it. When the Rails folks redesign the routes system, not only does my app get cleaner, but I learn stuff about how to write a good DSL. When Blake Mizerany wrote Sinatra, not only did we all get a super simple new tool for prototyping web apps in, like, zero seconds.... but we all learned something about how far you can take the "hello world" simplification trend.
We're all trying to get better at programming. We're all trying to advance the state of the art in software design. And we're all learning from each other, and it's awesome.
In many ways it's just a microcosm of what's happening in the Open Source world at large. Node.js is teaching Ruby devs important stuff, just as the Node authors seem like they probably took a cue or two from Sinatra. It's why I left the Microsoft world years ago.
Loose federations of heterogenous interests with high incentives to integrate are so much more interesting than centralized organizations.
When the rails folk redesign the route system it's not a refactoring cause a refactoring keeps functionalities unchanged, it does not add/remove/change corner cases. Which has happened in all major rails releases and some point ones.
"Refactoring" as a term was defined in that book. It has very much been diluted into "I changed some code because I think this is better," which is a shame because it has a very clear definition.
I should also note that having a test suite allows you to refactor with more confidence, but it's neither a requirement nor changes the definition at all. So a "TDD-assisted refactoring" isn't different from a "refactoring."
If you knew C really well, and someone said "Hey, you can be more efficient building a website in C#/ASP.NET", would you have that hard a time believing them?
I wouldn't. But if they said that I could write systems code better with Objective-C I'd say prove it.
Unfortunately whenever I see RoR people talk about ROR vs anything else, including ASP.NET MVC, they talk in broad strokes with statements like, "Obviously dynamic languages are far more productive than static ones." Or "People who program in Ruby are much better developers -- which is obvious to prove, because they program in Ruby."
I'm a former ASP.NET MVP, a codebetter.com blogger, I wrote Foundations of Programming, I own a handful of .NET OSS libraries. Yada, yada, yada..
All of that is pretty meaningless, I'm not saying to show off (most of that stuff isn't show off worthy). However, by all accounts, I'm an expert C#/.NET programmer who's been in the thick of of any progressive .NET movement. I know C# and ASP.NET (MVP or WebForms) much, much better than I know Ruby and Rails. Yet, somehow, I'm still more efficient in RoR (and thats only getting more true). I can get as low level about this discussion as you want, it won't change my opinion.
The two big wins for me: I write a ton less code and code is easier to test (this is largely since IoC is a language feature).
I know C# and ASP.NET (MVP or WebForms) much, much better than I know Ruby and Rails.