I am currently in a situation where I have to decide the cpu for my GTS 450 right now. Yes, GTS 450 is a gpu that doesn't need a cpu such as fx6300 or fx 8320, but in just a few months (about January), I will be replacing my graphics card with either the gtx 760, 770, or r9 280x. Will the fx 6300 be able to hold these gpus or will I have to buy the fx 8320 instead??? (yes, I will be overclocking the cpu).
If the 8320 fits your budget, there really isn't a reason to get the 6300 instead as performance is quite a lot better for the ~$40 difference. Although, you will want a better cooler than the stocker on the 8320, so factor that in to price as well.
If that $40 difference influences your GPU choice later on, get the 6300 and spend the extra on the better GPU.
The FX 6300 and 8320 are are both 3.5ghz Vishera CPU's. The only difference is the 8320 has 2 extra cores. So unless you have something that uses those cores, it's useless. Since most games on the market only use 4 cores, 6 should be more than enough. Right now, the extra power consumption and heat doesn't make it worth it since there are barely any games that would take advantage of it. I have the fx 6300, asus m5a97 r2.0 motherboard and the msi r9 280x and I know first hand that it doesn't bottleneck at 4.2ghz. You would be better off getting the hyper 212 evo and overclocking the fx 6300.