Consider a flow where we have Process Group A. Group A has Controller Service A.
Group A also has a child group, Group B. A Controller Service within Group B references Controller Service A.
If said Controller Service is removed (or Group B removed), Controller Service A still holds the fact that the Controller Service was referencing it, even though the Controller Service no longer exists.
Create Process Group A. Within this group, create an AvroSchemaRegistry.
Create Process Group B within Group A. Within Process Group B, create a JsonTreeReader and configure it to reference AvroSchemaRegistry. Now delete Process Group B. Configure Group A, then click to configure AvroSchemaRegistry. You'll see that the Controller Service still thinks JsonTreeReader is referencing it, even though the component doesn't exist.