Note: I have some more work to do to work out what the actual cause of this issue is. I can't expect anyone to help me debug it until I've done that, but I don't have time to look into it further just yet.
I have a couple of cases where I have an entity reference field, that is set to required, but when a user fills in some text that doesn't match anything, it passes validation and the node is saved with nothing in that field.
This seems like an identical question to Autocomplete entity reference - Required to select entity except that the accepted answer there doesn't apply in my situation. I have the autocomplete widget selected not Autocomplete tags style, but you are still allowed to enter text that doesn't match, and save without error. The end result is that nothing is entered in that required field.
I have these modules installed and actively working on this field: multiple_fields_remove_button references_dialog. Autocomplete matching is set to contains, and entity selection comes through views.