Ответ 1
Нет никаких препятствий для использования библиотеки поддержки. Более того, как вы правильно отметили, Google рекомендует использовать его в качестве лучших практик: "Включение библиотек поддержки в ваш проект Android считается лучшей практикой для разработчиков приложений, в зависимости от диапазона версий платформы, на которые настроено ваше приложение, и API, которые он использует". (http://developer.android.com/tools/support-library/index.html)
В качестве недостатков мы можем упомянуть лишь несколько незначительных вещей:
-
увеличение размера apk и общее количество методов в проекте (очень незначительное по сравнению с другими функциональными затратами)
-
некоторые конкретные ограничения использования (как правило, они упоминаются в соответствующих документах Java, и они обычно не играют никакой роли, если мы используем в приложении поддержку только поддержки, не смешивая их с "родными" элементами из sdk). В качестве примера см. Раздел FragmentActivity, раздел "Известные ограничения".
Что касается вашего второго вопроса - большое количество новых функций включено только в библиотеку поддержки, избегая дублирования в основном SDK (в качестве примера, например, android.support.v4.view.ViewPager и android.support.v4.view.PagerAdapter), Сохраняются возможности дублирования (например, фрагмент), чтобы поддерживать совместимость приложений, которые были разработаны с использованием встроенной реализации.