Case 1: AMD tesselation performance HD5000 seriesI am saying something so straightforward that I am not even sure it's worth arguing over it. Complex chips have a ton of tweakable parameters and features. Moreover software (as in drivers) evolve, improve and can be tweaked to address architectural deficiencies, especially if your competitors is much better at something that can hurt you. Console developers have proved this a million times.
GPUs are an ever changing combination of *HW and SW*. When a chip is taped out you fix the vast majority of its degrees of freedom, but there are still hundreds left to play with.
Case2: Nvidia shader and compute switch penalty [async shaders]
Exercise: Explain how software solved the respective deficiencies.