Using an IRI that is not a URL as an entity-id requires to have in addition an edit link or read link. Even if the edit link is the standard encoded version of the IRI, they are treated as different and need to be represented separately in JSON
The client must be prepared to accept any IRI but that services must use URIs in 4.0 since we have no lossless representation of an IRI in the entity-id header.