given that the namespace matches and the interface definition is identical, why should it matter which assembly it is found in?
The choice of treating these interfaces as equivalent would make it harder to compare interfaces: rather than comparing a fixed set of items (i.e. the qualified name and the assembly) CLR would need to compare the qualified name, and the list of all properties and all methods, along with their argument types, which would be recursive. Doing so would be prohibitively slow, especially if you want to do it consistently and include classes and struct
s into a similar comparison scheme.
Note: when you share a DLL with the developer in another country, make sure that your assembly has a strong name. This would ensure that you both link to the same assembly, and detect mismatches early. For example, if you change your interface, but the other developer sends you a plug-in compiled with an old DLL, the plugin would fail to load.