Как минимум язык более напичкан фитчами по сравнению с java. тут вопрос когда вообще майкрософт доведет все вменяемого вида. Я не за C# и сам пишу на java/scala, но факт остается фактом.
Я бы на вашем месте не парился и сделал бы инициализацию инстанса в Application#onCreate и наружу выставил бы только геттер. По поводу цитаты: у вас мутабельный синглтон? Если нет то в getInstance достаточно будет проверять наличие инстанса. На самом деле реально где нужен мутабельный синглитон это хранить какой то стейт приложения(токен авторизации например), если вы для этого используете то лучше SharedPreferences