Рефлексия активно используется, например, для поддержки разных версий JDBC драйвера (для обратной совместимости при расширении интерфейса).
Также может быть полезна для вызова метода, когда нет прямого доступа к экземпляру объекта, хотя это, безусловно, не самая лучшая практика.