Cache frequency is usually directly related to the latencies that they can achieve. Some programs benefit from increased frequencies and others benefit from lower latencies.
The decision is also very dependent on the various algorithims that are used to populate the L2 and L3 cache.
For example, Intel optimization guidelines for the old P4s states that if there is little or no parallelism in the code due to instruction dependencies (instructions need results produced by previous instructions), high cache latencies can worsen the problem. In contrast, if the code is highly parrallel without significant dependencies, high cache latencies cause little or no performance penalty.
So for the P4, Intel made the choice to significantly lower cache latencies relative to Pentium III, as [I am guessing] that they felt that this was the proper trade off to make for that architecture. But, as shown in the link below, whether a CPU cache is "good" is as much dependent on the coding of the software as it is on the hardware engineers making the chip. This is one of the fundamental reasons why the same code can and does perform differently on different CPUs.
This is always a situational decision though and cache is a really complex beast. For example, the factors that determine latencies and throughput come from design, logic used to populate the cache, sensativity of the architecture to cache misses, manufacturing problems etc....so the engineers have to try to factor all of these things in when making design decisions.
Intel's website is really a treasure trove of technical information, even if some of it is pretty old by now:
http://software.intel.com/en-us/art...mr-4-processor-vs-the-pentiumr-iii-processor/