function と if のまわりの { } のインデント

よくあるプログラミング宗教論争に function とか if の周りの中括弧 { } のインデントをどうするか、ってものがある(気がします)。
インデントの表現法 (スペース2つ or 4つ or タブ文字) もよくあるネタですが、この記事ではスペース2つにしておきます。

実はインデントスタイルにはそれぞれ名前があるらしく、

void Function() {
  if ( ... ) {
    // Java Style
  }
}

void Function()
{
  if ( ... ) {
    // K&R Style
  }
}

void Function()
{
  if ( ... )
  {
    // BSD Style
  }
}

と、名前がついているらしいです。Java と K&R の違いは関数の周りをインデントしているかです。

プログラミングを始めた頃は上の名前でいうところの Java Style で書いていてたのですが、Twitter で優秀なプログラマーのみなさんの話を読んでいるどうやら BSD Style (全部改行する) のが最近のよろしいスタイルらしいです。
個人的には if の周りの { } を if と同じレベルに書いてしまうとどうしても間延びしたように見えてしまって、if との関係がなんとなく見えづらくなるので好みではないのですが、どういうわけだか

int main()
{
  return 0;
}

のように書くことにはあまり抵抗がありません。なので、今は K&R Style で書くことにしています。

……という大変論理性も実りもない話なのですが、どうして { } の周りを改行するべきなのかググってもいまいちピンとくる話がなかったので、誰か教えてください。あ、PythonとかRubyを使えばこんなくだらないことを気にしなくて済むので好きです。

if ...
  # do something here
end
if ...:
  # do something here

最高ですね。