OSGi - это модульная система, поэтому очень важно иметь четкое разделение между пакетами. Если Spring может пойти и объединить их под одним ApplicationContext, он не будет отличаться от обычного приложения Spring, где все доступно в одном пути к классам. Как то так.
Что происходит, так это то, что каждый пакет получает свой собственный ApplicationContext. Эти ApplicationContexts могут обмениваться bean-компонентами с помощью OSGi Service Registry. Вам нужно пометить компоненты как экспортированные и импортировать их в другие ApplicationContexts, иначе они не будут видны друг другу.
Это должно объяснить, почему вы не можете настроить все с одним контекстом Spring и ожидать, что, начиная с одного пакета, он пойдет и найдет все компоненты. Контекст Spring сканирует только один пакет и, при желании, может импортировать / экспортировать bean-компоненты как сервисы OSGi.
Отсюда: Глава 8. Упаковка и развертывание приложений OSGi на основе Spring