It still boggles my mind that this is a thing. We have had multi-core CPU and GPU's for nearly a decade now. It's great that finally with Dx12 Microsoft is addressing this issue but in reality this is what Dx10 should have been tackling unless there is some super serious technical reason why Microsoft couldn't have sorted out this huge bottleneck before now.
Time? Interest?
Also another factor in recent years is that CPU IPC gains have slowed down in recent years, while GPU power is still increasing at a relatively high pace. This API is being considered now for these very reasons.
It could also be that Mantle has pushed them into developing dx12 in this way...