It would be nice to limit the ability to refer to something that isn't mounted. (Or maybe if a ref leaks out and that component that it refers to become unmounted, the promise failure can be invoked?

One other issue that this diff (as is) might solve (let's confirm/discuss):

If you pass a child to a component that calls `cloneWithProps` on it, your refs are currently removed. That's because only one component (the true owner) can reference a particular component. But when you `cloneWithProps`, the cloned descriptor is "re-owned". But with first class refs, we have the opportunity to allow multiple components to refer to that particular component.

We should decide on the behavior for `cloneWithProps` and add a test case.