struct の暗黙の public は直感的。
この仕様によって C と互換性を保っていることが簡単に推測できる。
全部 private だったら friend つけない限り意味無いし。

class の暗黙の private は、この仕様に決めた理由を知らないし、
推測することができない。

俺が無知なだけ?