автоматически деструктор вызывается для каждого элемента массива по принципу, первым создан - последним будешь удален, а если, по некоторым причинам, программист хочет сам удалить массив объектов, то надо ли ему сначала удалять последний элемент массива, а в самом конце первый?
Обязанности такой нет. Но если это вызовет какие-то ошибки из-за того, что другие объекты рассчитывали на существование уже удаленных - то это будет целиком и полностью ответственность программиста.