original: While pipelining can in theory increase performance over an unpipelined core by a factor of the number of stages (assuming the clock frequency also scales with the number of stages), in reality, most code does not allow for ideal execution.
simplifications: While pipelining is thought to increase performance over an unpipelined core in the number of stages, in reality, most codes cannot perform this very well. Pipelining may in theory increase performance over an unpipelined core by a factor of the number of stages. But in reality, most code does not allow for it. Theoretically, pipelining can increase performance over an unpipelined core by the number of stages. But in reality, most code don't allow ideal execution. Pipelining can  increase performance over an unpipelined core in theory. It must factor the number of stages. Assuming the clock frequency also scales with the number of stages is an example. In reality, most code does not allow for this ideal execution. Pipelining may boost performance over an unpipelined core by a factor of the number of stages (if the clock frequency also scales with the number of stages). However, in reality, most code does not allow for perfect execution. In theory pipelining can increase performance over an unpipelined core by a factor of the number of stages. This assumes the clock frequency also scales with the number of stages. In reality, however, most code does not allow for ideal execution. In theory, pipelining can raise performance, but in reality, most code do not allow this to happen. In theory, pipelining can increase performance over an unpipelined core. In reality, most code cannot allow ideal execution. In theory, Pipelining can increase performance  as compared to  an unpipelined core by a factor of the number of stages. However, in reality, most codes do not work into practice. Although pipelining can theoretically increase performance over an unpipelined core by a factor in the number of stages (assuming the clock frequency also scales with the number of stages), in practice, most of the code does not allow for ideal execution.