v_$datafile & v$datafile

Please look at the following two statements which Oracle uses to create v$datafile and v_$datafile.

It looks like V$datafile is a synonym of v_$datafile. However, v_$datafile is a view built from selecting v$datafile. This is a "circular" definition...... How can this be???????

create public synonym V$DATAFILE
for SYS.V_$DATAFILE;

create or replace view sys.v_$datafile as
select "FILE#","CREATION_CHANGE#","CREATION_TIME",
"TS#","RFILE#","STATUS","ENABLED",
"CHECKPOINT_CHANGE#","CHECKPOINT_TIME","UNRECOVERABLE_CHANGE#","UNRECOVERABLE_TIME",
"LAST_CHANGE#","LAST_TIME","OFFLINE_CHANGE#",
"ONLINE_CHANGE#","ONLINE_TIME","BYTES","BLOCKS",
"CREATE_BYTES","BLOCK_SIZE","NAME",
"PLUGGED_IN"
from v$datafile;