Вы смешиваете переменные, ссылки и объекты.
Выполнение delete y;
удаляет переменную y. Поскольку переменная больше не существует, она, естественно, больше не будет иметь значения. Таким образом, ссылка на содержащуюся переменную исчезла.
Однако удаление переменной само по себе не приведет к удалению объекта, на который она ссылалась. Массив все еще содержит ссылку на объект, и ни один из них не зависит от наличия переменной.
На самом деле нет способа удалить объект напрямую. Вы удаляете объекты, уничтожая все ссылки на них, а не наоборот. Вы хотите, чтобы объект удалил свои ссылки, а это просто не то, как он работает.