Надо очищать валидаторы, если удаляется директива, их накладывающая. Само оно это не делает.
Это вообще печально, валидация контрола у нас производится одной функцией, а не массивом функций. Несколько валидаторов при их сетапе сливаются в один (под капотом вызывается
Validators.compose
со старым валидатором и с новым), поэтому удалять вавлидаторы произвольно нельзя.
Ну и директива, провайдящая валидатор точно так же не может снять свой валидатор с контрола при ее ngOnDestroy.
Поэтому каждый раз, когда вы рендерите свой компонент, его валидатор добавляется ко всем прочим и останется в памяти даже после уничтожения компонента (и удержит вроде бы удаленный CVA в памяти, это утечка). Сами значения будут прилетать в новый CVA, а валидатор все равно будет цеплять всех.
вот пример как фиксить
https://stackblitz.com/edit/angular-ivy-va9xuk