When host is created from facts we don't trigger validations
For some reasons (bad and good) validations are disabled when host is created through facts/reports. One reason could be that we don't have all information until we parse facts, second could be that we want to save the host even if there are important attributes missing so user can fix it, third I've read in comments was speed. I think at least third is not valid. This causes issues which gets host into inconsistent state (e.g. two interfaces with same IP) that can't be easily fixed in UI and workarounds like using API are required.
I think we should run validations and refuse saving invalid host. An easier variant would be to ignore interface import for invalid hosts.