Разрешения, которые запрашивают приложения можно условно разделить на две части.
Разрешения, необходимые для полноценного функционирования приложения. Используя ваш пример с приложением о скидках: доступ к фото нужен для того, чтобы приложение могло опознавать штрихкоды продуктов с фотографий. Доступ к камере для того же. Тут все вроде понятно.
Во вторую группу попадают разрешения, необходимые для работы маркетинговых инструментов. Приложение, например, может запросить доступ к местоположению. Но это не потому, что разработчики передают информацию о ваших передвижениях ЦРУ / ФСБ, нет, они лишь хотят (например) таргетировать пуш-сообщения по вашей геозоне.
Многие мобильные системы аналитики требуют информацию о местоположении. Например, для сбора статистики о востребованности приложения в разбивке по городам.
Доступ к списку контактов бывает нужен для социальных механик внутри приложения (рассказать друзьям о скидках). Список можно продолжать.
П.С. Нельзя, конечно, исключить и нечистоплотных разработчиков, которые что-то ужасное с данными доступами делают. Лично мне кажется, что гораздо большая вероятность нарваться на таких в Google Play, так как модераторы AppStore достаточно внимательно проверяют приложение перед апрувом.