Two AMD 6870's crossfired will be a bit better than one AMD 6970 or slightly over a GTX 580 performance. A great price/performance ratio.
AMD cards do better crossfire with 6950's or higher. In December of 2010 I had two 6870's and had micro stutter when pushed in Crysis.
Here's a great article I was turned onto (Aug 2011) to read regarding AMD's scaling and why it does better in scalability by cutting corners to do it. They get better with higher GPU performing cards 6950 and up.
CrossFire, SLI, And Micro-Stuttering - read the "CrossFire With Two Cards" paragraph if nothing else.
An AMD 6950 2GB unlocked or a GTX 560Ti 2GB heavily over clocked will do a great job as a single GPU solution and come close to accomplishing what your looking for at your price range. You can always crossfire/SLI a second down the road.
As for the question do 6950's unlock, it is getting less and less. A great choice that comes with the BIOS switch and 100% going to unlock is the Sapphire Toxic AMD 6950 2GB. Another great card that can over clock to compare in performance on the Nvidia side would be the MSI GTX 560Ti 2GB TwinFrozr II. Both hard to get, either will be great and right at your budget.
The only single GPU cards that will get your best performance in BF3 that your looking for would be an over clocked 6970 or 580 even more so. Both out of your price range.
AMD does better in BF3 with High settings 4XMSAA off and Nvidia does better in Ultra settings with 4xMSAA on.
I'd have suggested wait until the next gen cards come out, but I'm assuming you've been wanting to play BF3 since release. The next gen cards start to trickle out with lowest GPU's first end of December (just before Christmas) and leading to the big boys after the first of the year is the speculation.
Good luck in deciding. I'm sure you'll get a bunch of varying opinions on the matter. In the end, it's your choice. Do your homework.
PS...edited to add: I just noticed your new....Welcome to OCN!