Currently, EntityIdValues are represented in JSON as pairs of entitiy types and numeric ids. There is no easy for a client to make this to a prefixed id or URL. Instead, we should always use the prefixed ID form (e.g. "Q1234") to represent an entity ID externally (and probably also in the internal serialization).
Of course, we must keep accepting the old form as input. Otherwise, we would be unable to process serializations from existing revisions.
"unserializing the EntityIdValue (e.g. from memcached) from the entity type + numeric id format to an EntityId object has significant impact on performance and memory usage.
The unserialization uses the PropertyId::newFromNumber and ItemId::newFromNumber methods are memory intensive, with use of strtr (#5 in https://github.com/filbertkm/wb-profiling/blob/master/memory_own-itempurge-1.25wmf1.txt).
If we can somehow move away from entity type + numeric id format in EntityIdValue, I think that would be better."