Методы UIImage imageNamed: и imageWithContentsOfFile: делают немного разные вещи. imageNamed загружает изображение в специальный системный кеш, а затем будущие вызовы с этим путем к изображению будут возвращать изображение в кеш, а не перезагружать его с диска. imageWithContentsOfFile просто загружает изображение по указанному вами пути, но не выполняет кэширование. Многократные обращения к imageWithContentsOfFile для одного и того же изображения приведут к нескольким копиям в памяти.
iOS, похоже, не очищает кэш (ну или вообще, я не уверен), когда выдается предупреждение о памяти, что может привести к завершению работы приложений из-за нехватки свободной памяти. UIImages, загруженные с imageWithContentsOfFile, отвечают на предупреждения памяти, удаляя их изображения и перезагружая их по мере необходимости, что может объяснить, почему ваш скачок памяти исчез.
Кроме того, кажется, что кэш в симуляторе гораздо больше, чем на реальном оборудовании, проблемы и сбои, которые я видел с UIImages с использованием imageNamed, произошли только на устройстве. Будьте осторожны при тестировании на симуляторе!
Единственная причина, по которой я могу использовать imageNamed одно и то же изображение, многократно используется в ваших представлениях. Кроме того, вы можете реализовать свой собственный кэш изображений и получить преимущества, связанные с кэшем, которым вы можете управлять, как описано здесь:
http://www.alexcurylo.com/blog/2009/01/13/imagenamed-is-evil/