¿Sabias que PHP al destruir una sesión por tus funciones session_destroy() y similares lo que hace es pasar tu "archivo de sesión" al estado "garbage" (basura) en espera de que sea definitivamente elimindao dependiendo de las directivas (php.ini) session.gc_maxlifetime y session.gc_probality (o como se escriba .. lo puse de memoria).?
El caso es que todo esto lo define la "Teoría" de sesiones y he ahí una posible explicación del por qué no ves que se borran tus archivos de sesión .. pues ese proceso no es inmediado (podría serlo según configures las directivas que arriba mencioné) sino que depende de un porcentaje de ejecuciones que define session.gc_probality y que no se inicia hasta que session.gc_maxlifetime termine (expire la sesión físicamente) ..
Consejo.: PHP tiene la virtud (o problema para otros) de ser altamente configurable y ... determinados temas como este de las sesiones es INSPRESCINDIBLE saber su teoría para conocer como se comportan las sesiones y de ahí veras que directivas de configuración de PHP son las que intervienen o influyen en como actuen o se comporten estas.
Por eso es NECESARIO siempre acudir al manual oficial de PHP y leer todos esos detalles:
www.php.net/session (la versión en ingles está más completa que la de castellano).
Un saludo,