>>19
xはpublicなフィールド
+=はオーバーロードされてるメソッド
++は純粋にpublicなxをインクリメントするだけ

つまり一時的にコピーされたインスタンスに対して操作(代入とかインクリメント)とかして放置がダメっていう意味だけど分かりますかね?
+=は内部的にメソッド読んでるけど、++はオーバーロードされてないんでpublic xを操作するだけ

>go.transform.position.x++;

これはつまり、
Vector3 pos = go.transform.position;
pos.x++;
で終わってgo.transform.position=posをしてないのと一緒だからエラーになる