ReactJS condición de carrera SetState concurrente

Tengo una estructura de componentes como esta

<A>
    <B>
        <C/>
        <C/>
    </B>
    <D>
       <E/>
       <E/>
    </D>
</A>

La idea es que las acciones en los componentes en el bloque E se procesen mediante una función del componente A al estado de A y luego se transmitan a B y C como accesorios. Sé que esa mejor manera era usar Flux, pubsub-js u otro sistema de mensajes de la Tienda, pero espero que alguien pueda explicar por qué la solución correcta no funciona.

Llamar a esta función del componente A simultáneamente desde múltiples instancias del componente E conduce a la condición de carrera con solo un cambio de estado (en lugar de que cada llamada a la función proporcione un cambio)

updateState(value,index){
   this.setState(update(this.state, {
        a: {
          [index]: {
            b: {
             $set: value
            }
          }
        }
    })
);
}

La actualización de la función aquí proviene de

import update from 'react/lib/update';

Mala solución que va en contra de las prácticas recomendadas de ReactJS, pero funciona bien:

updateState(value,index){
   this.state.a[index].b=value;
   this.forceUpdate();
);
}

Mi pregunta es:

¿Es un error, que múltiples setState simultáneos invocan una condición de carrera, o estoy haciendo algo mal sin entenderlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta