Dependent instructions are held until all the instructions ahead of it are complete. This is vital in fast modern processors since data will take at least 2 or 3 cycles to arrive from cache. Without this, they would stall for at least a cycle or 2 every few instructions. This is why it was such a big blow to the RISC processor makers. Since the P6 was released most of the RISC chips are now Speculative out of order devices.
Life is complex.
It has real and imaginary parts. Up until now threading has been an operating system concept. It allows a processor to work on several parts of the same job at once by switching between two independent tasks. You can also assigning each thread to a different processor and work on the same job on two different processors. Most modern processors have execution resources that are not used.