Actually I also had to choose between GTX 670's. To be honest, you already max bf3 with any GTX 670. It is an high end card. I personally had the choice between an EVGA FTW, PNY, ASUS, normal EVGA or even a GTX 680. In the end I chose for ASUS GTX 670 since EVGA uses a reference design and the asus one has 2 fans. The difference wasn't that big between a GTX 670 and a GTX 680 so for me it wasn't worth it to pay 100 euros more.
Back at your question. It really depends if you got the money or what you plan to do with it. Some people buy extreme cards and sli it to play on multiple monitors but any gtx 670 should max out battlefield 3 on 1920x1080. I think that the 4 GB has more fps (correct me if it is not) than the 2GB but it is your choice if it is worth it. Since both max BF3 out on your resolution.
You will likely see virtually no per-clock difference, because 2GB vs 4GB is likely not important at 1080p (see below). If you are willing to overclock on your own, pick whatever has a better cooling system.
For 1080p you are probably fine with the 2GB model, though of course your decision will depend on pricing (it never hurts to have 4GB of VRAM). From anandtech's review of the 680 classified, it seems that the 680 (and by extension, the 670) is often limited by the width of the VRAM bus, and thus the data transfer rate, as much or more than as it is by the actual quantity of VRAM. Going to 4GB won't help that. Anyway, current games at 1080p will not present a problem for 2GB, even with high AA settings.
Highly unlikely that you will use the benefit of having a 4GB card unless your running resolutions higher that 1080p or more than one monitor. For the next few years, I don't see why a 2GB card wouldn't meet your needs to the fullest if your running 1 monitor in 1080p.