I suspect Nvidia's advantage is their proprietary software like PhysX and other software used in high-end computing or scientific-computing, and possibly they scale better (or simply there are Nvidia-supported solutions) when you want to add dozens of cards together. Is this the case? Because I don't see how one can claim AMD needs to "catch up" in performance if you're looking solely on a card-by-card basis.
Edit: Comparing http://clbenchmark.com/device-info.jsp?config=14470292&t... and http://clbenchmark.com/device-info.jsp?config=11905561&t... (easier comparison: http://clbenchmark.com/compare.jsp?config_0=11905561&con...), the only ones where Nvidia trounces are on Mergesort and memory usage of Gaussian blur; mergesort is mentioned in the submission. So what about the rest? And factoring in being able to buy two 7970s for the price of one Titan?
AMD has the superior hardware in many ways, but their software just isn't quite there yet in my personal opinion.