I don't know where these notions are coming from.
Compilers can (and do) reorder instructions to extract as much parallelism as possible. Further, SIMD has forced most compilers down a path of figuring out how to parallelize, at the instruction level, the processing of data.
Further, most CPUs now-a-days are doing instruction reordering to try and extract as much instruction level parallelism out as possible.
Figuring out what instructions can be run in parallel is a data dependency problem, one that compilers have been solving for years.
Side note: the instruction reordering actually poses a problem for parallel code. Language writers and compiler writers have to be extra careful about putting up "fences" to make sure a read or write isn't happening outside a critical section when it shouldn't be.