I would suggest that private channels should be allowed to be made public. I would then add a new channel type: Secret. Secret channels would be more appropriate for discussions involving secret stuff, and these channels would not be allowed to be made private or public. Private channels could serve a useful purpose as they would not clutter up the list of channels, but could become public if their purpose becomes more broad.
Also, technically I can still invite everyone into a private channel so there's really very little protection there.