Large difference there is that in those systems you opt-in and only pay for it in the classes you want(which is more in line with C++).
In the case of Unreal we used it to extend the RTTI system to to more things than just isA(). Stuff like member properties(editor hints in window), serialization(network & disk) and stuff you'd use C# attributes for.
I guess C++ would have been more well served by having static RTTI, but if it comes will be only on C++20 most likely, although type traits and template meta-programming already get us half way there.
However when I look to such examples, I am quite happy to spend most of my time on JVM/CLR lands.
It is not the meta-programming as such, rather the decltype, trailing return types and SFINAE tricks that put me off.
The difference being that they created their own version.