No ... non sono "identiche" ... c'è quel registro che fa la differenza.
In parole povere, nel modello "lineare" la memoria ha indirizzi crescenti da 0 (prima cella di memoria) in poi e quindi, un programma che occupa, ad esempio, 2 K di indirizzi di memoria, deve essere "rilocato" perché quando viene caricato in memoria, l'indirizzo effettivo cambia (nel codice un'istruzione o un dato possono essere all'indirizzo 0 per il programma ma per il sistema operativo staranno all'indirizzo 102000 ... ).
Nel modello segmentato, l'indirizzo effettivo di una cella di memoria è formato dal contenuto del registro "segmento" (quello che vedi in figura) più da un "offset" che indica la cella a partire da quella in cui comincia il segmento.
Quindi, nell'esempio precedente, se il registro segmento viene impostato a 102000, nel file del programma l'istruzione o il dato possono restare all'indirizzo 0 e non dovranno essere rilocati perché saranno considerati a partire da quello del segmento.