Build Variants - варианты сборки, debug и release - изначально два варианта
в дебаге для быстроты сборки обычно не подписывают и не обфусцируют
а в релизе наоборот все по максимому делают
ProGuard это отдельная тулза, которую гугли взял и заиспользовал.
в Gradle нужно указывать конфиг и включение
minifyEnabled true
ProGuard в первую очередь обфускатор кода
а также умеет кучу всего =)
Если я не ошибаюсь, пуш не обязательно сообщение для пользователя, пуш может придти для конкретного приложения и оно, поймав его, открывает окошко с отображением с текстом