predication execution, branch prediction
The quote from the book doesn't describe how predicated instructions work today. It says that predicated instructions are "executed but only committed if the condition is true". But that would be exactly what branch prediction does, and would lead to exactly the same problems. 

Instead, a predicated instruction is implemented as an ordinary instruction which just has one more input. It is always executed and always committed, just the effect of the instruction depends on a condition flag. That means all the mechanism to accelerate execution, out of order execution etc. can be used.