GlobalVariable constructor vs Function::Create

Looking at the global object concrete classes, it seems GlobalVariable provides a constructor, whereas Function makes the constructors private or deleted, and instead provides a public static Create function.

Is there a reason for this difference?