DSpace currently does have two DOI implementations: one to register DOIs using the DataCite API and one to register DOIs using EZID. If the DataCite API is used, DOIs are stored as dc.identifier.uri and prefixed with "http://dx.doi.org/" so they can be linked as they are. If EZID is used DOIs are stored in dc.identifier. This should be harmonized as it is odd to look for a DOI in two different metadata fields.
The code to register DOIs using DataCite supports using different backends. One way to harmonize both implementations would be to write an EZID-Backend and to use most of the code independently from the registration agency.