Декомпилятор может декомпилировать все классы, включая те, которые защищены, закрытые пакеты, вложенные классы и т. Д.
Разработчики иногда перепаковывают зависимости внутри jar-файла, чтобы не нужно было ссылаться на дополнительные jar-файлы. Это часто приводит к очень проблематичным ситуациям, когда это делают несколько зависимостей, когда несколько пакетов перепаковывают один и тот же код - такая практика не рекомендуется. Исключением является приложение, а не библиотека, в этом случае конфликты не могут возникать, потому что это не зависимость ни от чего другого.