Иначе получится, что при рефакторинге придется добавлять или удалять тесты, а это противоречит самой его идее
Включу зануду. На самом деле нет. При рефакторинге иногда можно добавлять, а потом удалять тесты.
Например, когда меняется какой-то внутренний интерфейс "подсистемы". В процессе в какой-то момент времени может существовать 2 интерфейса взаимодействия (старый и новых). Т.е. пишутся/копируются временные тесты.
Получается, что с высоты это рефакторинг. А на более глубоком уровне поведение объектов/подсистем меняется.