Hi Lee (and others),
Packages are missing in your discussion of “visibility” and “separateness” of components and interfaces. Packages are used to manage and associate the visibility of these elements.
If an analyst wishes to closely tie an interface to a component (or pair of components), the interface can be defined in a package (the same package) together with its “closely related” components.
However, if an analyst is modeling with a more generally reusable interface, the interface can be declared “at a higher level of visibility” in the package hierarchy.
I have seen both arrangement correctly modeled. Sometimes the interface is truly “private” between 2 specific components. But in other cases (like debugging/instrumentation), an interface is highly reusable between multiple pairs of components in a system.