I see several reasons.
1. It's impossible to not be in a public channel. Yes, you can mute it, but you can't ever leave it. In a large company with thousands of channels, this creates cognitive overhead.
2. You can create private channels, but this requires the ability to assign permissions. This has two problems - one, if you have a lot of teams that need to have private rooms you're going to spend a lot of time juggling permissions, and two, if you need a quick ad-hoc room that you don't want littering the general list, you need to be able to assign permissions.