Why are FGenericPlatformMisc functions not virtual?

FGenericPlatformMisc is a generic platform interface for reading out system info(and a few more things that are platform dependent) thank you epic for writing it
but why did you not design it in a way that i could do

FGenericPlatformMisc platform;
#if PLATFORM_WINDOWS
platform = FWindowsPlatformMisc();
#endif
Fstring cpu = platform.GetCPUVendor();
log(cpu);

and add more #elif blocks for any platform i want to ship to

its not that it hinders me to do anything i need to do, im just curious and i still think it is strange that FWindowsPlatformMisc is a child of FGenericPlatformMisc yet it does not override its functions properly

if there is a reason to this is just did not see i would be happy to hear about it

well it works this way

FString cpu = FPlatformMisc::GetCPUVendor() + ":" + FPlatformMisc::GetCPUBrand();

still feels a little wierd, but maybe this helps someone coming along cause he wondered