Как ни крути, а бизнес-требования меняются в проекте, и если он большой, то команда должна научиться с этим справляться. Сегодня можно было отрицательное - завтра нельзя. Так бывает, и где-то эту проверку делать придется, и где-то надо будет кидать эксепшн. В версии 2.0 или просто в мастере или еще как-то - тут уж пусть команда решает как ей это побороть.
Вот в примере выше был кейс с установкой значения в служебное поле - это как раз безопасное изменение, без регрессии.