Разница может быть в работе методов освобождения ресурсов (объект может быть сложным) и в механизмах работы сборщика мусора. Особенно, если учесть, что
GD - это
отдельный модуль, а
unset является частью ядра
PHP.
В документации про возможность использования
unset вместо
imagedestroy ничего не видно. Так что лучше использовать
imagedestroy, чтобы не было утечек памяти.
На этот вопрос наверное только разработчики
PHP смогут ответить и то не всякий, кто участвовал в разработке. Версий
PHP уже было много, что-то в процессе могло поменяться в логике. Полной картиной только старожилы могут обладать, которые участвовали в разработке всех версий
PHP и находятся в здравом уме и твердой памяти :-)
Исходный код
открыт, можно в нем поискать :-)