Потому что разработчики ленивые и собирают «конструкторы», а не пишут все сами. А конструктор собранный занимает больше места, чем разобранный. Нельзя не сломав разобрать конструктор. Все приложения - собранный из кубиков конструктор.
Раньше интернет был медленным и Оплачивался по мегабайтам. Сейчас у большинства пользователей безлимитный интернет, и теперь размер приложений не так важен. Разработчики не думают о нем сами по себе.
Увеличивается размер ресурсов, которые «зашиты» в приложение. К примеру, если раньше для изображений использовались форматы PNG или платформозависимые альтернативы, сегодня это SVG, который «весит» в несколько раз больше, за то никогда не пострадает в качестве, на любом экране. Хотя данный пример и не про iOS.
Разработчики почти ничего не пишут сами. Современные приложения больше похожи на собранный конструктор из тысяч строк чужого кода, когда 10 лет назад каждая компания воплощала все функции сама. Раньше зачастую попадались статьи в блогах разных разработчиков, посвящённые той или иной «фиче» и как ее воплотить. Сегодня этого почти нет: разработчики объединяются и совместно пишут open-source фреймворки для всех таких фич, а статьи пишутся лишь в форме «как это использовать» и «в каком фреймворке это реализовано».
Сама философия программирования меняется и приходит новый язык, в который сразу заложено меньше «компактности». Язык Swift, пришедший на замену Objective C, сам по себе увеличивает размер приложения, за счёт того, что «тащит» зависимости внутри бандла. Тоже самое с другими фреймворками и языками, не только на Apple: Xamarin, React Native, Ionic.
А вы не допускаете мысль, что приложения сами по себе становятся сложнее, задействуют больше ресурсов (библиотек, да и тех же картинок для UI), что требует больше места в памяти?
Я б на месте автора переформулировал бы вопрос: почему, б***дь, все стараются записаться на основной памяти, а не на SD-карте?