Nella maggior parte dei casi, quando esiste uno scontro puoi trovare con l'esperto del dominio un perfetto che rimuove l'ambiguità.
Quando non esiste, il problema non riguarda il codice base poiché il compilatore conosce gli spazi dei nomi (e btw nessun repository dovrebbe essere nello stesso modulo del dominio), ma il carico cognitivo degli sviluppatori.
In effetti, quando nuovi sviluppatori si uniranno al progetto, dovranno conoscere il significato "diverso" di "quell'unica parola" e impiegheranno del tempo per essere in grado di capire dal contesto se si sta parlando della tecnica concetto o quello del dominio (e credetemi, questo è sia fastidioso che costoso).
Quindi, suggerisco di
- trova un termine soddisfacente con l'esperto di dominio
- Se (e solo se) non esiste
- usa il termine dalla lingua ubiquitaria così com'è (repository, nel tuo caso) per il concetto di dominio
- usa la convenzione di denominazione che gli sviluppatori già adottano per il concetto tecnico (AddressRepository qui) o dovrai dedicare del tempo a spiegare l'eccezione un sacco di volte!
Potrebbe sembrare troppo pragmatico, ma funziona bene.