Ответ 1
Я думаю, что это не рекомендуется вообще, потому что на Application может быть только один экземпляр (таким образом, только один класс).
Я очень подозрительно отношусь к тому, что действительно работает. Вы говорите об утилитарном классе, поэтому, возможно, вы используете статические методы, которые работают хорошо. Но вы должны использовать свой отладчик, и я почти уверен, что вы обнаружите, что один из ваших классов никогда не создается.
Кстати, официальная документация гласит, что:
"Как правило, нет необходимости в подклассе Application. В большинстве ситуаций статические синглтоны могут предоставлять одни и те же функциональные возможности более модульным образом. Если вашему singleton нужен глобальный контекст (например, для регистрации широковещательных приемников), функция для извлечения ему может быть предоставлен контекст, который внутренне использует Context.getApplicationContext() при первом конструировании singleton."