Thanks for that. With domains I thought that just creates a list which is not much help as I am typing in many different things into the boxes that wouldn't be in the list. I do however use domains on other fields.
Thinking about it, how does one add null to a domain. Surely typing in null or <null> would produce characters rather than null itself.
I am having the same problem on version 10.6 using the Attribute Table. If I copy-paste NULL values from one field to another, it pastes the text representation of NULL, not the value NULL. Also, if I backspace in the field, it seems to leave an empty string in the cell, not NULL. If I then right-click and select Delete, I still have an empty string in the cell. This is a bug to me.
If, however, I use the Attribute Editor, I can just backspace in the field and it leaves a NULL value in the cell. It behaves quite nice.
As you've discovered, copy/paste <Null> isn't a viable option; I don't that's a bug per se. If you would rather have true <Null> value my suggestion is to select where YourFieldName = 'Null' (or what ever the text representation is) and then using the PYTHON parser in the field calculator:
YourFieldName = None