Return a cached RpcObject for the given typeArgs, creating one via create only on the first call for each unique (this, typeArgs) pair. Thread-safe via atomic copy-on-write; in the rare event of a race, create may be called more than once but only one result is kept.