When using the Subobject Data Subsystem (Engine\Source\Editor\SubobjectDataInterface\Public\SubobjectDataSubsystem.h), we often have to work with an instance of FSubobjectData (Engine\Source\Editor\SubobjectDataInterface\Public\SubobjectData.h), for which we make use of the blueprint-exported functions in USubobjectDataBlueprintFunctionLibrary (Engine\Source\Editor\SubobjectDataInterface\Public\SubobjectDataBlueprintFunctionLibrary.h).
Suppose we have a blueprint BP_Parent, which contains a StaticMeshComponent (or any other Component). And we also have a blueprint BP_Child, which derived from BP_Parent and thus inherits that component. When accessing BP_Child using the SubObjectDataSubsystem, an Editor Utility may need to get the component object to change some property on it. In this situation, the method FSubobjectData::GetObject() returns a pointer to a component in BP_Parent, which is expected. On the other hand, the method FSubobjectData::GetObjectForBlueprint() seems to be the one intended to access the inherited component in BP_Child. However, that function currently returns null in this case. This seems to happen because, internally, it fails a CanEdit() test, which for some reason returns true only for components added to actor instances inside the level editor (not for components added to actor blueprints). As a result, it is currently impossible for an Editor Utility to access inherited components though the currently blueprint-exposed API
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-196994 in the post.