One would think that,only makes sense right?
But as soon as you have a main thread that has higher demands than the rest of the threads,scaling is much more restricted.
No.
You have 8 slow cores (speed = 1) and get 30 fps. Moving to 8 fast cores (speed = 2) will not change the underlying scaling of the program (unless the program is atypical - say limited by PCI-e speeds or CPU bandwidth) and you should get 60 fps.
Running on a fast or slow core, a demanding main thread will (assuming gpu limited) still be the bottleneck; for instance capable of processing 30 fps on a slow core and 60 fps on a fast core. Moving to faster or slower cores (with the same number of cores) will not change the relative demands of the main threads in general.
Of course there are exceptions that can go either way. Games can be limited by memory latency and moving to faster cores may not scale well; conversely scaling to slower cores (with similar bandwidth and latency) is very good. Games may also have fixed portions such as the 600 hz project cars physics engine in which scaling to a slower CPU increases the proportion of CPU cycles consumed for physics relative to that of other game logic, causing poor scaling on slower CPUs.
Scaling is most definitely not linear in most cases.
Scaling doesn't necessarily mean that it will run faster and faster the more and faster cores you have,it can mean that it will run just as fast on much slower cores as long as there are enough of them around.
While I don't dispute the fact that scaling will allow low clocked slow cores to do well if there are many of them this scaling should still exist if the clockspeed of those cores are cranked up. This behavious should be visible on the same numbers of cores of any speed, as low as the application is not atypically limited by something like bandwidth/memory latency or the PCIe bus.