リファクタリング後の内側のループでは、5 と等しいか確認する前に、なぜ data[i][j] を出力するのでしょうか?
5
data[i][j]
値 1 から 4 までを出力しないようにするためです。
1
4
Go の構文では、すべての goto の前に fmt.Println が必要だからです。
goto
fmt.Println
すべてのデータ要素を 5 に変更するためです。
制御が終了する前に、トリガーとなる値 5 も出力に含めるためです。