Чтобы иметь возможность переопределить некоторые из его поведения.Например, у вас будет базовый контекст для приложения, затем поместите его в ContextWrapper и переопределите объект Resource для его темы (что на самом деле делает Android).
Что касается того, почему вы это делаетеа не просто подкласс, чтобы не создавать два, возможно, очень тяжелых объекта.Вы также можете делить переменные между ними, но это увеличивает вероятность утечек памяти.Также возможно, что создание объекта стоит дорого, но если это уже сделано, вы можете избежать этого, используя прокси.