構造化制御文はインデントされた行を1行と1行、例えば if (a == b) { と } で挟むのが、
パッと見たとき一体に見えて分かりやすい。{ を単独行にすると、{ と } で挟まれた
無名ブロックがあって、その上に構造的に無関係な1行のif文があるように見えてしまう。
もう少しじっくり見れば、行末の ; の有無で下のブロックとの関係を判別できるが、
その一瞬の認知の遅れに違和感を覚え、もっとはっきり言えばキモいコードだと思う。

同じ理由で、条件が真のときの文が1つの場合の
 if (a == b)
   c = d;
 e = f;
のようなスタイルもキモいし、Pythonの
 if a = b:
  c = d
  e = f
 g = h
はもっとキモくて、まさに蛇蝎のように嫌いだ。

関数・メソッド定義と制御文の見分けという観点からも、前者は
 int func(int arg)
 {
後者は
 if (cond) {
で始めて、( の前のスペースの有無と { の前の改行の有無のどちらでも前者と後者で
違いをつけた方が、すんなりと見分けられて良い。