Хотя с технической точки зрения это вполне возможно, я считаю, что такой подход будет излишне сложным, особенно учитывая, что «в начале» трудно определить или обнаружить, и вы хотите избежать ситуации, когда плагин снова добавляет B после того, как администратор сайта его удалил. Кроме того, при добавлении новой приватной категории плагину потребуется включить её в настройки, но при этом он должен уметь различать новую категорию (добавить) и категорию, которая ранее была удалена администратором (не добавлять заново).
Я бы выбрал настройку include_private_categories, которая изначально пуста, и плагин просто обрабатывал бы все публичные категории, а также категории из include_private_categories. Это избавит вас от множества проблем.
Кроме того, с функциональной точки зрения это упрощает отслеживание того, какие приватные категории сейчас доступны для общего доступа (в вашем подходе пришлось бы держать в уме список категорий, а затем определять, каких не хватает, сравнивая их с теми, что указаны в настройках).