¿Por qué podemos cambiar la lista no modificable si tenemos la lista original?

Al mirar el código deCollections clase, llegué a saber que cuando usamos el métodounmodifiableList(List list) ounmodifiableCollection(Collection c) no está creando un nuevo objeto pero está devolviendo la referencia del mismo objeto y anulando los métodos que pueden modificar elList [ add, addall, remove, retainAll ...]
Entonces ejecuté esta prueba:

List modifiableList = new ArrayList();
modifiableList.add ( 1 );   
List unmodifiableList = Collections.unmodifiableList( modifiableList );
// unmodifiableList.add(3);  // it will throw the exception 
modifiableList.add ( 2 );       
System.out.println( unmodifiableList );

el resultado es[ 1,2 ] .
Ahora el punto es ¿por qué se refiere al mismo objeto? ¿Por qué no crea un nuevo objeto?

Respuestas a la pregunta(7)

Su respuesta a la pregunta