Well AMD did jack up the price relative to the HD6970 which was part of the problem,but Nvidia was also to blame too. I remember Nvidia stubbornly not decreasing the price of the GTX580,so AMD had an easy win in terms of price/performance(more VRAM and being faster) but the HD7950/HD7970 were not aggressively priced as the HD4870,HD4890,HD5870 or HD6970 were. But it didn't help AMD was conservative with clockspeeds as the HD7950/HD7970 were very good for overclocking.
However,even the HD7950 3GB was still priced $51 lower than the GTX580 1.5GB and hence it was also massively cheaper than the GTX580 3GB. Plus there was a leaked picture,IIRC,showing that the GTX680 was originally meant to be called a GTX670. But what Nvidia did is push up the GTX670 to a GTX680 and than rebranded the GTX680 as the Titan,and hence doubling the RRP of the top Nvidia dGPU from $500 to $1000.
Also,there was something else people didn't cotton onto(but I did) at launch. The GTX670/GTX680 used non-deterministic core boost,ie,there was no upper defined boost limit. AMD used fixed boost mechanisms(defined upper limit) with the HD7950GE and HD7970GE. So there was no real upper limit,so the reviewers with open test benches using their short test sequences had the cards boost very high. But after the launch reviewers noticed the boost clocks were not held,so had to change their testing methodologies - places such as Hexus for example ended up warming up the cards with some game loops to make sure the cards were warm before testing. TPU ended up trying to cap clockspeeds.
Nvidia must have known something was up,because they did some revisions to the boost mechanism to make it more consistent a few months later(IIRC). But the issue is that the launch reviews were not changed. So this is why the HD7970 and HD7950 caught up with the GTX680 and GTX670 in newer tests IMHO.