In reply to ABD_91:
The UVM command line processor has been there since before UVM-1.1d.
Factory registration happens as part of static variable initialization at time 0 before any phases begin. (Before any initial/always processes start)
See this link for more details. It was written for the OVM, but everything still applies for the UVM.