More details in this Linear comment.
It's always safer to initialize with startReached: false. An erroneous startReached: false is always resolved when the keyserver responds that there are indeed no older messages, but an erroneous startReached: true can't really be resolved.
This code should typically not be triggered, since freshMessageStore is supposed to make sure that there is an entry in messageStore.threads for every entry in threadStore, and freshMessageStore correctly initializes startReached to false.
However, there are many things that can cause a thread to appear spontaneously, eg. the state check mechanism, or potentially a redux-persist issue as discussed in ENG-957 and ENG-1821. So we want to make sure we handle this correctly going forward.