Choice B
Your work is intermittent, such as programming, with occasional high multi-core use. In this case don't go for cores. The 12 cores would put you at 2.7GHz which is where you'd be most of the time, versus 3.7 GHz for the quad. Clearly the quad would be faster most of the time. Sweet spot; the hex core. Only drops 200 MHz for 50% more cores, and basically the same stepping.
Mmmmm programming is highly parallel. Developers ideally want the 12 core, not the 4 core. The biggest time suck for developers is compiling, which scales evenly across cores.
Sure, most the time you aren't compiling, but those other times you are using a word processor to type code. You aren't going to notice the 1.0 ghz loss in a word processor, but you will notice the loss at compile time, and it'll be annoying if your projects are large.
Now of course not all developers can afford a 12 core, and a 4 core is certainly ok for developers. But in no way is a 4 core better than a 12 core for developers.
(Citation: I'm a developer)