Keep up the research. There is a mechanism that the protocol uses to determine for itself which chain was first.
also, those checkpoints are hard coded so far. It's not unreasonable for one or more clients to have an automatic checkpointing method, wherein they will refuse to accept a new chain beyond a certain point; thus forcing a chain split until human users resolve the issue.