Currently we use an invariant to prevent this code pattern. That is really aggressive for something that doesn't actually put React in a bad state. This diff replaces invariants with warnings and makes those code paths no-ops.