RPC functions should only be called for cosmetics really. If you use replication of variables properly, and use the OnRep functionality for any other visual gizmos, there should be no problems. In your first example, if B joins after A has picked up the item, the fact that A has the item should be replicated to B automatically.