IMO . . . I am not an expert, but have been in engineering/testing since the dawn of home computing, and this is my take.
Speculative execution was created to support the (hugely naive) threading approach to multi-processing.
Mutable shared state has caused countless problems in hardware & software over the decades, and will continue to do so unless it is stopped ;) It is just _too hard to do safely_, for mere mortals!
If you want to use multi-cored hardware efficiently, use processes, not threads!
What do more highly-trained software engineers think?