This has been mentioned in passing, but the #1 reason for Ryzen being poor in certain titles is the inter-CCX latency. Certain games really like low latency communication between cores and suffer when dealing with the higher latency introduced by the infinity fabric design.
Remember these benchmarks?
https://www.techspot.com/review/1450-core-i7-vs-ryzen-5-hexa-core/
Take a look especially at Grand Theft Auto V, Far Cry Primal, and Hitman. Those are three of the worst performing games on Ryzen.
Notice that in those same games, the i7-7800X is also much worse than the 7700K. In fact, the 7800X isn't much better than Ryzen 5 1600 when the 7800X is clocked to 4.7Ghz and the R5 1600 is a 4 Ghz. So R5 1600 is nearly as good as the 7800X despite Skylake's IPC advantage AND the 7800X's clock advantage.
So what gives? If it were really just a single-core performance issue, the 7800X should be better.
Well, the 7800X uses the higher-latency mesh interconnect, like all Skylake-X processors, while the 7700K is using the lower-latency ring bus design. The core-to-core latency is the obvious connection between the 7800X and R5 1600. So that has to be the reason.