Ответ 1
Импорт пакета обеспечивает дополнительный уровень косвенности, требующий пакета.
Рассмотрим случай с некоторым стандартным API... org.standard.framework. Предположим, что две компании реализуют этот API, возможно, у вас есть пакеты com.abc.framework и com.xyz.framework. Оба этих пакета реализации будут экспортировать пакет org.standard.framework.
Теперь предположим, что вам нужна реализация org.standard.framework, но вам не особо важно, какой из них. Если вам нужен пакет com.abc.framework или com.xyz.framework, вы привязываетесь к определенной реализации. С директивой import-package вы позволяете OSGi служить в качестве слоя косвенности.
Еще одно преимущество импортного пакета заключается в том, что вам не нужно изменять зависимости, если пакет переносится в другой пакет. Эта ситуация может возникнуть во время рефакторинга, когда пучки разбиты или объединены.
По этим причинам разработчики спецификаций OSGi теперь, как правило, рекомендуют использовать относительно новую директиву import-package over require-bundle. Проблема в том, что не все пакеты готовы для этого. Многие еще не указывают версию при экспорте пакета. Это делает импорт-пакет нецелесообразным во многих случаях.