実際にどういうプロトコルになってるのかはそれこそマイクロアーキ屋さんの仕事の見せ所なんだろうけど例えば
・投機実行したロード命令Aでロードしたキャッシュラインが他のプロセッサによりinvalidateされる
・投機実行したロード命令Aよりプログラム上で先行する完了していないロード命令Bが存在する
・Bでロードするキャッシュラインは自分のプロセッサのキャッシュ上に存在せず、他のプロセッサのキャッシュからフォワーディングされる
こういう条件でsnoopを行うプロトコルなら可能だろう

あと>>57の
>ARMなら常に3のメモリ読み込みは1のメモリ書き込みより先行して実行可能で投機的実行にはならない
というのは誤りで、ストアを追い越す場合は両者の実効アドレスが確定するまでは追い越しが成功するかは不明だ
ARMにはレジスタをオペランドに取るアドレッシングモードしかないから
スケジューラに入った時点ではmemory disambiguationに相当するようなエイリアシングの解消を行った上で投機実行しないと追い越せない