Entonces como hago sin el array_merge?
Si pongo $_SESSION['formulario'] = $_POST; se borrarían los valores anteriores...
Por lo de que if(!isset($_SESSION)) session_start();
no siempre se ejecutará y además te deja incluir el archivo con include() (si pones session_start dos veces, al final yo tuve el problema de que mi session_id() estaba vacío o.O) y te olvidas de que en el php.ini se puede configurar una directiva (session.auto_start, creo) en on para que no sea necesario iniciar las sesiones