My understanding is that C++ reinterpret_cast and C pointer cast is a just a compile-time functionality and that it has no performance cost at all.
Is this true?
Yes, this is true. Casting type which has runtime cost is dynamic_cast.