Yes, the Co's devops can convert public -> private, given a justified need. The installed users won't be affected, unless they un-install the channel - then they cannot find it back in teh Store.
"Merging without disrupting" was possible using
roChannelStore.doUpgrade() - but that was
discussed recently as essentially abandon-ware by the Co. You could update one of the channels A to show info message and then transfer (via ECP) to info screen for installing channel B, thus stopping them from using A anymore and herding them towards B. If A and B share registry settings, that will minimize friction.