Scusa, ma perché dopo session_start() definisci $_SESSION come array? Non è proprio il compito di quella funzione, oltre ad inviare gli header necessari? E poi io al posto di session_destroy(), che distrugge completamente la sessione, ho sempre usato unset($_SESSION['nome']), che distrugge solo il namespace di sessione interessato.