I don't understand the issue here.
You pass in invalid data and get an appropriate response.
Call acs_content_type__drop_type to remove an already existing type to recreate it. The APIs support this.
There is an effort to add a Tcl API for object types, so we can probably offer better error messages, but I think erroring is the right thing to do in this case.