Strange behaviour when calling ClientRPC on different NetworkBehaviour instances

It’s probably my mistake, but I just want to check if this is not a known bug (at least not known by me).

I have the following two classes:

public class Inventory : NetworkBehaviour
{  
    [Server]
    public void ServerUpdateInventory()
    {
        ...
        RpcClientUpdateInventory();
    }
    [ClientRpc]
    void RpcClientUpdateInventory()
    {
         ...
    }
}

public class PlayerBelt : Inventory
{
    ...
}

At some point, I have one instance of each class. On the server side, I call ServerUpdateInventory() on each instance, hoping that it will call RpcClientUpdateInventory() for itself on the client side.

Now the funny thing is that, instead of RpcClientUpdateInventory() being called once in the Inventory instance and once in the PlayerBelt instance, it’s called both times from Inventory instance. I assure you they are different instances, even though PlayerBelt inherits from Inventory.

Is it a bug or it’s just some stupid mistake I made?

Does this happen because I have both class and subclass as components of the same GameObject?