UVMクックブックでは、クラスオブジェクトのインスタンス化は実行時に行うと書かれています。しかし、実行前、コンパイル/精緻化中に、クラスのすべての詳細を取得することもできます。
下の画像 (UVM クックブックから取得) に示されているように、モジュールとインターフェイスのインスタント作成はエラボレーション フェーズで行われますが、クラス オブジェクトの作成は実行時に行われます。

このサンプル例を検討してください。
// Inside any .sv file
class A;
int a;
endclass
A x;
initial
x=new();
この場合、実行時にクラスを作成する必要はありません。別のモジュールやインターフェイスの詳細と同様に、コンパイル/エラボレーション時にクラスのすべての詳細を利用できるからです。
では、なぜ Systemverilog では、実行時にクラスのインスタンス化だけが行われるのでしょうか?
C++ でもオブジェクトの作成は実行時に行われません。
注:質問では、継承を使用しない単純なクラスについて話しているため、実行時の作成が必須になる可能性があります。すべて (モジュール、インターフェイス、クラス) のメモリはシミュレーション中にのみ割り当てられるため、作成によるメモリ割り当てについては言及しません。画像のコンテキストを取っているだけです。