Yes, I know this:
V$DATAFILE is PUBLIC SYNONYM and V_$DATAFILE is View

But, my question is this:

If you read the definition of these two objects carefully, you will see that they are circular definition.

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???????