в целом все решилось, ситуация была такая:
«Столкнулся с проблемой:
Показываются фрагменты A, B (могут быть не только 2 фрагмента, а более)
Вызываю:
router.backTo(null)
Ожидание:
вызывается onDestroy() у фрагмента B, вижу фрагмент A.
Реальность:
onDestroy() не вызывается у фрагмента B, вижу фрагмент A.»
onDestroy не вызывался из-за того, что popBackStack(null, INCLUSIVE) шедулится, а не выполянется сразу, а мы после backTo(null) начинали сразу вручную управлять фрагментами во fragmentManager(да есть еще и другие фрагменты, которыми мы управляем вручную, а не через Cicerone), что затрагивало те fragment’ы, которые не успели удалиться, в частности фрагмент B.
Добавил между backTo(null) и работой над фрагментами в fragmentManager вручную вызов fragmentManager.executePendingTransactions().