無限ループからbreakで脱出する利点はわかる。処理Aが終わらないと条件Aの判断ができないとき、

処理A;
while (条件A) {
  処理B;
  処理A;
}

みたいな冗長なコードを書かずにすむ。

while (1) {
  処理A;
  if (条件A) break;
  処理B;
}

でもgotoとは関係ないよね。