Route caching was a feature in the Linux kernel that was taken out about 10 years ago. It created a “cache” of routes based on source and destination hashes to improve performance. However, the large number of port scanners that started to appear caused the cache to fill up with garbage src-destination pairs, making performance even worse than if it didn’t exist. So route caching was removed from the Linux kernel because of this. In RouterOS v6 it makes speedtests faster for one system, or a big file download for one system faster, but with real world traffic for a bunch of clients to a bunch of different destinations is much slower on RouterOS v6 because it has to look in the cache first, and the cache actually slows things down in this case. So RouterOS v7 is actually faster in general, it just appears to be slower because of what route caching does with a speed test. A better way of comparing v6 and v7 performance would be to set up a bunch of systems behind the router and have a bunch of users going to many websites to try to create as much traffic as possible, but that is too much work for most people.
In other words, in situations where the CPU becomes a bottleneck, in RouterOS v6 the speedtest results could show you about double what your router could actually do. In RouterOS v7 it should show what it can actually do.
More details from @raimondsp can be found here: http://forum.mikrotik.com/t/ccr2004-high-cpu-usage-ros7/152163/9