At least some of the 580s improving Performance vs the 1060 is likely to be due to AMD's influence on the Software side of things. Partially from DX12, but also from controlling the Consoles which practically all Game Developers have become accustomed to.
Yeah, but you can't put 15%-20% performance improvement in Wolf 2 and Doom as software influence, clearly Polaris could process Vulkan much better than Pascal. Heck the RX 580 basically competes with the 1070 in Vulkan titles. Vega 64 actually matches 1080ti.
Nvidia did improve their architecture with Turing, they are basically more like AMD's arch now. Which shows how ahead AMD were in terms of low level api's processing. It took Nvidia 3 years to match AMD in DX12 and Vulkan.
If all games were magically converted to great DX12 or Vulkan engine designs, RX 580 would literally be competing with the 1070 in most games, and Vega 64 would be on par with the 1080ti. Radeon 7 would actually trade blows with the RTX 2080 and probably even beat it in several games, rather then being about 7% slower on average.
The issue is MS didn't introduce DX12 in windows 7, so devs continued developing DX11 games or dual mode games, it was done because of greed, they knew no one would migrate to Win10 if DX12 wasn't exclusive to it, but this has meant very slow adoption of DX12, with half the gaming PC's still using Win7.
AMD miscalculated with DX12 and Vulkan penetration to the market, its been much slower than anticipated and that has been their biggest mistake. They also developed Vega as a dual purpose GPU, rather than developing 2 iterations of it, one for the professional market and one for Gamers, though they probably didn't have enough devs and money to be developing two iterations of it.
Right now since they have Vega, I think they are going to use it and develop it and iterate it into compute powerhouse for the professional market and their new Navi architecture as the gaming cards.