"Performance" has no units defined. If you multiply those two figures, one in GHz and the second in number of cores, you still have GHz.
4GHz dual core cpu has the same performance as an 8 GHz 1 core CPU would.
2GHz octa core cpu has the same performance as a 16 GHz 1 core CPU would.
16 GHz 1 core CPU has twice the performance than 8 GHz 1 core CPU.
I still fail to see where is the problem.
I should point out a contradiction in your post:
"Performance has no units defined"
"This xGHz processor has the same performance as that xGHz processor"
---
Next up, even if you argue your point based on meaningless* hypothetical identical processor cores, it's not meaningfully correct by any reasonable yardstick to say that two processors will perform the same as long as the numbers add up, because not all tasks/programs** scale perfectly elegantly up or down to x processor cores. Some tasks/programs are ideally suited to one processor thread, so an octa-core 4GHz processor is not going to perform the task eight times faster than that processor with only one core enabled, nor is a hypothetical 16-core processor going to do a job that was designed for 8 cores twice as fast as an 8-core processor.
There are logical bottlenecks to many tasks that limit how well they scale, and a hypothetical 16GHz single-core processor trying to chew away at an 8-thread task is not going to do it as quickly as a 2GHz octa-core processor simply because the 8-core processor is able to simultaneously process 8 threads at once whereas the 16GHz single-core is going to have 7 processor threads in limbo at any given moment that it will have to possibly constantly (depending on processor thread scheduling, which is another can of worms) change thread contexts with, which very likely (if we're talking about tasks that utilise the processor's features to their limits) also includes cache contents needing to be swapped out to RAM (which would likely result in significant performance penalties), etc.
* - I say meaningless because in the realm of general-purpose mainstream computing, there are no more single-core, absurdly highly clocked processors because people who know how processors work decided long ago realised that the be-all and end-all of overall system performance is not one insanely clocked processor core (that's just aside from the physics concerns of attempting to do so). The vast majority of processors spend their lives not being pushed to their fullest potential. It's about clearing logically inefficient workloads as efficiently as possible. For example, modern versions of Windows rarely use more than two processor cores simultaneously for OS maintenance work, therefore if a user wants to keep using their computer and get reasonable performance out of it, more than two processor cores is desirable. However, as a general rule grandma is not going to get onto Facebook twice as fast because she's got a processor with twice as many cores and/or double the clock speed.
** - I'm making a distinction between 'task' and 'program', because the task is the job that needs doing and the program is a current attempted implementation of automating that task. A task can be suited for x number of threads, and/or the programmer responsible for the program may have unintentionally designed/compiled the program in such a way that it does not scale particularly well to x threads.