Fix bugs introduced by over-aggressive optimizations

We must still avoid multiple instructions arriving at the writeback stage simultaneously,
even if they don't all update registers because they may still have other side effects.