I think a lot of you are missing the point/implication of the "dual core" thing.
If you have a recent Intel-based PC and enable HyperThreading then go to Task Manager you see your 1 physical CPU unit becase 2 CPUs (as far as the OS is concerned).
HyperThreading is a bit of a trick, as it maintains dual pipelines while keeping 1 of everything else around it. Still, the 2 pipelines mean 2 threads are be able to run at once.
When you go to dual core, you have two entire processing cores - not just the dual pipelines, but dual everything else, but in one physical CPU unit (one chip case).
Of course as far as the OS can tell that one physical CPU unit is two CPUs. Actually it really *is* two CPUs. Whereas HyperThreading will never be 2x faster than a system with HyperThreading disabled (because the two threads are sharing other components and have to wait for each other), with dual core you will get very close to 2x.
Now if you have a G5 with two physical CPU units in it (that the current design supports) you will now have four CPU cores, so 4 threads can run at once.
The dual-core thing gets confusing because you need to distinguish between the physical chip unit (the square thing with the pins!) and the number of CPUs. Intel never came up with a clean way to describe it with HyperThreading either.
One last thing about dual core. In an SMP system such as MacOS X, Linux or Windows NT/XP/2003 (SMP = symmetric multiprocessing), you can have a performance killing problem called "cache sloshing". This is where the two CPUs have the same memory location in cache, then one of the CPUs change the memory value. Now both CPUs need resync by talking to each other. Then the other CPU may change the same value and the information bounces back. This can be expensive in a traditional single-core multiple processor system design such as the current dual G5 - the CPUs are tied together with a very fast bus, but the physical distance the electrons have to travel becomes important. That why in nearly any dual CPU system you'll find the CPUs are no more than a couple of inches apart. Anyway, with dual core, but cores are less than an inch apart, and if you oriented the appropriately the caches could be much closer. Now you have a system that is less penalized by apps that didn't optimize their L1/L2 cache usage, so overally performance of a 1x dual core system will exceed that of a 2x single core system.