Aaron's keynote at least year's RailsConf provided a pretty good list that haven't really been addressed yet. The number of levels each request goes through is quite high. Reducing the number of default middleware or streamlining that process would be high on my list. Using native database features would be as well. Fortunately there has been tangible progress on the latter. And I can't speak to this as well as I'd like, but the Slim guys seem to indicate the Rails view compilation & cache system could use some work.
Even with persistent data structures (data structures that return a new version of themselves with the requested changes rather than modifying themselves internally), when you add an item to an array, you are only using a new container. All the elements in the array are the exact same objects in memory as the previous version. This is why persistent data structures are still fast, despite occurring in O(n) time. If it had to duplicate the elements (and all the objects they point to, recursively), it would be so slow as to be unusable if you had to do it frequently.