NSArrays (и, соответственно, NSMutableArrays) сохраняют добавленные к ним объекты и отправляют им все сообщения об освобождении, когда сам массив освобождается.
Результатом этого является то, что общим шаблоном является выделение объекта, его инициализация, передача его в массив, а затем его освобождение. Поскольку массив сохраняет его для себя, он будет работать столько же, сколько сам массив, или пока вы не дадите указание массиву избавиться от него. Вам никогда не потребуется отправлять ему другое сообщение о выпуске, об этом заботится механизм массива.
Я бы предположил, что изменяемые массивы реализованы как нечто вроде связанного списка, поэтому их можно легко расширить и свернуть позже. Это просто список указателей и, возможно, небольшие метаданные. Поскольку он не создает каких-либо объектов, переданных ему, он просто привязывает их к себе, все, что ему нужно для этого, - это место для указателя на объект.