«Почему» легко. UserDefaults не является базой данных. Это просто файл plist . Либо все загружается в память сразу, либо нет. Если это так, то все ваши объекты данных UIImage находятся в памяти. Память ограничена, а изображения большие. Кроме того, вы тратите время на загрузку и сохранение.
Вопрос о том, что это такое большое дело, является вопросом мнения. По моему мнению, да, это так. Это потому, что я прошел через этот процесс, и я был рад, что я сделал. Да, это трудоемкий код миграции, но как только вы это сделаете, вы просто оставите его на месте, и ваше приложение теперь корректно обрабатывает сохранение данных навсегда.