Someone else has probably suggested this, but I wonder if AMD didn't look at the Spectre/Meltdown stuff (and IIRC quite a few of the cloud processing setups disable multi-threading) and decide that pushing core counts would be especially beneficial at this time.
As for DX12, it'll take time as companies do new game engines that are built with it in mind (so that it won't take most developers that are using UE or Unity, etc, to implement it). That will probably start to happen this next go around. Doesn't the DX ray-tracing API that they're trying to push require DX12?
I think the biggest issue is that DX12/Vulkan got announced pretty early into this current console generation, and even though their hardware supports it decently well, it wasn't ready soon enough for the major game engines of this gen to be developed with it in mind. They could patch it in but it was never going to usurp DX11 that quickly (which DX11 seems to have taken DX9's place as this weirdly dominant DX version for whatever reason).
I think that's why Microsoft added that DX draw call handler to the GPU in Scorpio, as they knew developers just weren't going do the extra work yet and so it was a way to ease that issue. Plus it has benefits for older games as well (wonder if it might have been necessary in order to do the 4K or higher framerate 1080p rendering on Scorpio of older games as they did their backwards compatibility push).
What would be really interesting is if the next gen engines better utilizing DX12/Vulkan, might actually enable ports of games using them to run better on the current gen than the current gen engines do, making them viable longer. Which for Sony and Microsofts sake, I hope they try and push utilizing the extra CPU grunt the next gen will bring to push for better game AI and physics.