Quick comment on the permissions vs channels here: if the query use case is indeed that each user retrieves messages from a user-unique set of permissioned channels based on what channels they have view access to, then it will make sense to continue having a content topic per permissioned channel. It’s only if certain content topics (i.e. channels) are always grouped together in query criteria because they share some higher level grouping (e.g. a permission-ID) that it makes sense to collapse those into a single content topic.
Re migration - indeed likely to be the biggest challenge here. Probably implied in your post, but as long as we move all traffic to an existing content topic in each existing query use case, we can set the conditions for migration in a future version without breaking anything right now. We can then warn users who still publish to old content topics for several versions before the compatibility break is effected.