端的にいうと、その変数に作用するタイミングが違うということです。
r4 += (r4>>1) * (++r4) は、++が変数前置となっていますので、
(r4++)の中は ++ された 6 としてしてから式を計算します。
r4 += (5>>1) * (6)
ここで、(r4>>1) の なかの r4 が5のままとなっているのは、単純に演算優先順の話です。
r4 += 12
この最後に += する時点で r4 が ++r4 され 6 に変わっているので、 r4 = 18になります。
後置のr++だと
r4 += (5>>1) * 5 で増分は 10
r4 += 10
この最後に += する時点で r4 はようやく++ され 6 に変わり結果 r4 = 16になります。