It’s actually a requirement of the DID spec (see Implementer’s Draft 01, section 5.2) that all DIDs are globally unique. Therefore the target distributed ledger for a DID MUST ensure that that DID is unique on that ledger.
It is fascinating to consider how different ledgers will handle this requirement. The DID methods proposed for Bitcoin and Ethereum are based on the transaction address (Bitcoin) or the smart contract address (Ethereum). That’s how those methods can guarantee uniqueness—every transaction (inside every block) has a unique address on Bitcoin and every smart contract has a unique address on Ethereum.
But it also means that the identity owner must first obtain the address (which becomes the DID), and then, in a second step, to another transaction to post a DDO that references that DID.
On Sovrin, this is reversed: first, the identity owner generates an Ed25519 key pair (which happens entirely locally, without involving the ledger). The first half (16 bytes) of the public key (the verification key) as the owner’s DID. So the identity owner can then register the DID and the DDO in a single Sovrin transaction. And the Sovrin validator nodes will verify that the DID is unique on Sovrin before accepting the transaction.
See the Sovrin DID Method Specification for more details.