It should be possible to change the Type of an inherited Component to any derived Type.

Example: There is an Base Blueprint that contains a Light Component and does something with the Light. A derived Blueprint wants to use a Point Light and a different derived Blueprint wants to use a Spot Light. I had this problem multiple times and sometimes a Workaround is not nice but ok (Create a Light Component Variable in the Base Blueprint and set it from the derived Blueprints) but currently I work on a derived class of Wheeled Vehicle and want to use a Derivate of VehicleMovementComponent. A Workaround for this will be much harder.