El session_name() se ha de definir antes q el session_start() y siempre q uses sessiones has de indicarlo (podrias omitirlo y tomaría el nombre que PHP da por defecto a las sessiones PHPSEID o similiar no recuerdo bien ..)
Código PHP:
<?
session_name('sid');
session_start();
$sid = session_id();
?>
El efecto que detallas sobre el SID sucede si usas propagación del SID por COOKIES que es como lo estas haciendo.
Podrías desactivar la directiva (php.ini):
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fields et="
o quitar por lo menos las referencias a LINKs como a=href por lo menos (igual apareceria en campos hidden de formularios por ejemplo en un primer instante)
Tambien tienes la opcion de SOLO usar cookies para progagar el SID:
; session.use_only_cookies = 1
Activala en tu PHP.ini quitando el ; de delante (y por supuesto ha de estar; que ya lo estará activada y a 1: session.use_cookies = 1
Con eso SOLO propagarias el SID en una cookie .. cosa que debes tener claro y en cuenta que si un Cliente (un navegador de tus visitas a ese sitio) NO deja guardar cookies en el (las tiene desactivadas o no las acepta) .. Tu sistema q use sesiones no va a funciona por la sencilla razon q NO se propaga el SID.
Estas directivas se pueden "forzar" en tiempo de ejecución de tus scripts via:
ini_set("directiva","estado");
Eso al principio de TODOS los scripts q usen esa configuración exclusiva .. con eso te aseguras que donde pongas tus aplicaciones q usen esa configuración q tu requieres .. sea la correcta (siempre y cuando dejen usar ini_set() en el servidor q lo pretendas usar). Con esto te evitarias modificar tu php.ini (útil si no tienes acceso al php.ini como en servicios de hosting)..
Un saludo,