Well I think there is a possible explanation (just using my logic). Looking at the specs:
5850 has a texture fill-rate of
52.2 GTexels/sec vs. 34 GTexels/sec for the GTX470.
5850 has a pixel fill-rate of 23.2 GPixels/sec vs. 24.3 GPixels/sec for the GTX470.
5850 has a memory bandwidth of 128 GB/sec vs. 134 GB/sec for the GTX470.
We know that 5850 is slightly slower than the GTX470 in modern shader intensive games up to 1920x1200. This means that texture fill-rate is just not that much of a factor in modern games at that resolution or otherwise 5850 would be much faster. However, in games like Prey, Wolfenstein and Quake 4 (more texture dependent -
http://www.techpowerup.com/reviews/Zotac/GeForce_GTX_460_1_GB/18.html), 5850 is actually faster than the 470. Texture fill-rate becomes a major limitation at 2560x1600, again where the GTX470 loses to the 5850 and loses by 30% to the 5870.
"The bottleneck of the GF100 architecture the low main domain frequency and the
cut-down TMU subsystem (the GeForce GTX 470 has only 56 TMUs) shows up most clearly at 2560x1600" -
http://www.xbitlabs.com/articles/video/display/gigabyte-gf-gtx400_17.html#sect0
But what happens at 1920x1080 where TMUs are not a factor yet? "The Full-HD mode (1920x1080) has become a de-facto standard and the GeForce GTX 470 feels less confident here than in the previous case. It is now an
average 1% slower than the Radeon HD 5870." (same link as above).
Ok now back to 5850. At 850mhz on the 5850 GPU, you are looking at
identical Pixel fill-rate of 27.2 GPixels with the 5870. We know that up to 1920x1200, 5850's texture fill-rate advantage over 470 doesn't show up. Therefore, the 72 TMUs of the 5850 aren't going to be much slower than 80 TMUs of the 5870, unless you are at 2560x1600.
The minor performance difference is likely accounted for by the reduced memory bandwidth of the overclocked 5850 to 5870's rather than the texture-fill rate disadvantage.