How to use components from different Cells
Summary
The basic idea is that we'll treat component includes like remote includes when a component does not exist within the same Cell as the consumer project. (Namespaces are still unique instance-wide, so it is not possible for a component with the same path to exist in multiple Cells.)
The HTTP Router should then take care of delivering the include request to the correct Cell.
Doing this would also enable SM/Dedicated instances (unless airgapped) to include components from GitLab.com (if we allow specifying includes with gitlab.com instead of $CI_SERVER_FQDN).
We likely need some form of caching to avoid a big increase in remote include requests. For published components, we could cache very aggressively as the content behind a published version cannot change.