No change, see my original post. As you join channels like you build a tree, where the master is the trunk and all joined channels are its branches, I would expect the tree to fall (apart) when you cut down its trunk. I realise you don't want to change functionality to remain backwards compatible, but to me current behaviour is a bug that should be fixed.
If fixing the behaviour is not an option I guess a BASS_ASIO_RESET_JOINED flag could be added? It would unjoin all joined channels. For logic I would support any channel, not only the master, as the <channel> parameter.
My call would then look like
BASS_ASIO_ChannelReset(FALSE, 0, BASS_ASIO_RESET_JOINED);
where 0 is part of the group of joined channels I would like to unjoin (it happens to be the master, but I would not make that mandatory).