Un iterator no es lo mismo que glob, el primero no carga la estructura completa en memoria, glob sin embargo carga un array completo de todas las coincidencias, no es lo mismo iterar de a uno sobre 1000 elementos a cargar de una sola vez 1000 elementos en un array, y tambien hay que tener en cuenta la recursividad, el iterator que estas utilizando itera(valga la redundancia) de forma recursiva por toda la descendencia mientras que glob no es recursiva perse.
Como te dije antes todo depende de lo que quieras hacer, deberías utilizar glob cuando sabes a ciencia cierta que van a ser pocos resultados, en el resto de casos es mejor opción Iterators.
Como curiosidad hay un
GlobIterator