Hey,
I guess no other solution right now for this, just names
If you open any .uasset file which is Blueprintclass with a simple text editor and you search for propertyname you will find your properties i guess.
That means Engine storing properties as string and when you save them this will be saved to uasset, if you load any uasset will be parsed as uproperty
So basically whole system i guess searching for fnames, because uproperties are stored as tmaps or somethig like that in memory, but im not sure.
If you want avoid fname compare maybe you can do FName bytesize compare or length compare first and if same size/length found, you can do full compare
Im not sure this will be faster, but maybe a littlebit because of getting length is faster as compare characters.
But anyway, FNames are simplified strings using much less memory as string and as Matze said before fast enough to work with them