You can't directly compare frequency (ghz) between two different architectures. It was an old way of marketing that got stuck so people think 4ghz is faster than 3ghz. Which it is, if you're comparing a haswell intel cpu to a haswell intel cpu or amd fx to fx. Intel's cpu's process differently and more efficiently. They have higher ipc (instructions per clock) than amd cpu's. Because of that, 3.5ghz on intel can easily process data faster than 4ghz on amd. Even overclocking amd won't help it surpass intel unless it's a really slow intel cpu. Overclocking a 4ghz fx cpu to 4.8 would help it some and may get it closer to the processing power of an i5 at 3.5ghz. Keep in mind the 4690k can also be overclocked to around 4.6 or 4.7ghz making it that much faster since each mhz the intel cpu is strong than the amd. Overclocking an amd fx 800mhz is more like overclocking an i5 300mhz.
Even in heavily multithreaded applications where the amd cpu's can use all 8 cores effectively, it basically matches the processing power of the 4c/4t i5 and in some rare cases will perform slightly better. So it's not just a matter of intel being faster when an amd cpu is only using 2-4 of its 8 cores, the amd doesn't perform much if any better under ideal conditions.
Part of it also has to do with the architecture. An i5 can process 4 threads with 4 cores. An i7 can process 8 threads but still with 4 cores so there's a slight advantage but it's not the same as doubling performance as 8 true cores would. Amd's cores are a bit trickier, they have 8 cores but the way they're designed they have 2 processing cores per 'module' and 4 modules (on fx 8 core cpus). Even though there are 2 cores in a module, those 2 cores have to share some resources like the floating point unit (fpu), l1 cache, fetch, decode etc. Intel's cores on the other hand each have their own resources, their own fpu, l1 cache etc. Both amd and intel share the l3 cache.
When people think of cores, they think of independent cores with each core having access to it's own resources completely and fully functioning. Having half of those resources split between 2 processing cores in the fx modules, there are times where the cores are fighting each other for the same pool of information and slows them up. If you and a friend have to walk groceries from the car to the house and shoes are required to do so (barefoot not being an option), you both could be getting loads of groceries to the house if you each had your own pair of shoes. If you had 1 pair of shoes to share and one had to wait for the other it would take you much longer. That's essentially what amd's done with their modules. It's not really something new, it was done in the mid 90's with risc chips which since have gone away. When amd started the bulldozer architecture they thought it would be a good idea to try it again.
If amd's cpu cores had independent resources for each core they would perform a bit better than they do. Too much sharing going on, much like the hyperthreading in intel cpu's. It does add some performance but only around 12% give or take on average depending how well it's utilized. Having 8 threads is great but having only 4 processing cores to handle the data is very limiting compared to a cpu that each thread ran entirely on it's on processing core.