It's a bit pointless to compare the Z80's performance to the 6502's by clock frequency alone because the Z80 did "less work" per clock cycle. For instance the Z80 did one memory access in 3 clock cycles, while the 6502 did a memory access in 1 clock cycle. The fastest Z80 instructions were 4 clock cycles, the fastest 6502 instructions 2. So just comparing by frequency a 1 MHz 6502 would be roughly equivalent to a 2 or 3 MHz Z80.
But then you have the completely different instruction sets and design philosophies too. To extract the most performance out of the 6502 you need a completely different approach to programming than on the Z80.
And in general, the C64's architecture is a lot more complex then the ZX Spectrums. The C64's architecture was very expensive but optimized for getting a lot of stuff changing on the screen with very few clock ticks. The ZX Spectrum's architecture was much more simple and rigid, but much cheaper to build (even from standard parts, as the many Eastern European ZX Spectrum clones proved).
Now, comparing the Amstrad CPC against the C64 would be much more interesting ;)
But then you have the completely different instruction sets and design philosophies too. To extract the most performance out of the 6502 you need a completely different approach to programming than on the Z80.
And in general, the C64's architecture is a lot more complex then the ZX Spectrums. The C64's architecture was very expensive but optimized for getting a lot of stuff changing on the screen with very few clock ticks. The ZX Spectrum's architecture was much more simple and rigid, but much cheaper to build (even from standard parts, as the many Eastern European ZX Spectrum clones proved).
Now, comparing the Amstrad CPC against the C64 would be much more interesting ;)