Yes, to assign them "server IDs", so the next time you send the entity to the server (or you find() it using its stableId()), it'll be looked up in the data store (i.e. your Locator's find() will be called, not create()).
and if so, why is so slow when working with large object graphs?
It entirely depends what your Locator's find() does here, and whether it can benefit from a local cache (EntityManager's session cache for instance).
Because this is done for each and every entity created on the client side, it becomes slower as the number of entities grows.