If more than one component needs data at the same time (peers on a page, for example), the test on whether the data has been loaded (it's not null) fails and multiple actions are performed in parallel, unnecessarily.
If each action could keep state (empty, loading, error?), we could skip actions that are repeats of actions in progress.