Well you could use the Python approach of "we are all adults" and allow people to do the wrong thing if they are explicitly asking to do it.
I do believe it's better to be strict but allow a loophole just in case future use requires it.
For example in my codebase, only valid objects can be created via User.create but we do create invalid ones for testing since it's not necessary to have full objects there.