czy w niektorych przypadkach mozna uzywac dispatch bezposrednio importujac store ?
Można, tylko wtedy masz większy coupling w przeciwieństwie do rozwiązania, w którym dispatch / (bądź funkcje, które wywołują dispatch) byłyby wstrzykiwane dynamicznie.
Tzn. te linijki :
import {onChange} from './onChange';
i
import Store from 'Store';
Uzależniają twoje komponenty od konkretnej implementacji store (i konkretnego modułu, w którym jest to zadeklarowane). No i w sumie masz coś w rodzaju singletona czy zmiennej globalnej (nie mówię, że tu musi być zawsze złe, po prostu aplikacja staje się bardziej monolityczna).
Wstrzykiwanie do obiektów rzeczy przez props
pozwala na uniezależnienie komponentu od store'a, więc twoja aplikacja staje się bardziej modularna (przynajmniej w teorii, w praktyce to różnie bywa - np. ludzie czasem jedną rzecz elegancko wstrzykują, a 10 innych rzeczy dalej importują "na pałę", więc i tak często uzależniają sobie jeden moduł od 10 innych)