And the developers of that software will tell you that the API is the bottleneck. And the creators of that API will tell you that the problem is that lazy bastard of Stewie at human resources for not providing more and better software engineers. Then Stewie would tell you that he has 5 sons and wants a daughter badly and became obsessed so he doesn't pay much attention to work. In the end the bottleneck is someone's unborn daughter, way to go.
It doesn't work like that.
You need something done at your CPU to keep your GPU working. If that isn't happening you have a CPU bottleneck. Name it software, IPC, uarch, frequency, amount of physical or logical cores, caches or whatever you want. Break it down all you want until you get a daughter for Stewie.
In a year or whenever TFSM disposes way better CPUs will be launched making that crappy code run good enough to keep your GPUs fed. Then your CPU bottleneck will be gone.
Same happens with Mantle. In the third example with the 290X CF it is removing the CPU bottleneck.