catalog.sql create set of data dictionary views (like dba_tables ...).
each view creation command in catalog.sql use syntax:
CREATE or REPLACE VIEW ...

then if u execute this script u don't change any rows in real tables of oracle
dictionary, except tables than keep view definition (like sys.source$, sys.obj$ ..), but
this rows oracle will change thru sql commands (CREATE VIEW) execution not directly using DELETE / INSERT commands.

conclusion: u can execute this script in any time not only as part of installation process.