...
Je crois que y'a de sacrés notions de réseau qui manquent

(surtout sur le protocole http)
tant qu'il y a toujours au moins une fenêtre FF ouverte, les variables de session sont gardées
Le variables de sessions ne sont pas enregistrées chez toi, mais sur le serveur web.
enfin ça, ça doit être ma configuration Apache qui veut ça
Apache n'est pas impliqué dans la gestion des variables de session, c'est un concept purement PHP.
En fait, je viens de voir dans le 'Gestionnaire des tâches' que N fenêtres IE == N threads IEXPLORE.EXE, alors que N fenêtres FF == 1 thread firefox.exe ...
C'est donc le choix respectif de gestion des threads qui explique la différence.
Rien à voir.
J'explique :
1) les variables de sessions sont stockées dans des fichiers dans le répertoire temporaire de php (sur le serveur, donc)
2) une fois une session initialisée (par php), php va renvoyer automatiquement un cookie de session au client (le fameux PHPSESSID, encore qu'on peut spécifier un nom différent).
3) le client fait ce qu'il fait avec tout cookie : il le copie méticuleusement dans chaque requète qu'il envoie au serveur
4) du coup, lorsque le client accède à une autre page un peu plus tard, PHP récupère la valeur du cookie, et retrouve le fichier associé à l'identifiant de session.
La persistence des sessions entre fenetres ne dépend donc que d'une seule chose : est-ce que le navigateur a un gestionnaire de cookie séparé pour chaque fenêtre ou non (oui pour IE (enfin ça dépend de comment tu ouvres les nouvelles fenetres en fait), non pour firefox).
Une autre facteur entre en jeu également : le nombre de clients du serveur. Pour ne pas pourrir le répertoire temporaire, le nombre de fichiers de sessions simultanées est limité dans le fichier de conf de php. Lorsque toutes les sessions sont utilisées, une nouvelle session force la destruction d'une ancienne, sélectionnée par LRU.