This is for creation time patch. The 2nd hard link is reported that its creation time is modified. I traced into rsync and the creation time is the one of the file just before it. I think I got it : after this, in recv_file_entry(), in flist.c, line 787 in version 3.1.3 if (first_hlink_ndx >= flist->ndx_start) { struct file_struct *first = flist->files[first_hlink_ndx - flist->ndx_start]; file_length = F_LENGTH(first); we should add "crtime = f_crtime(first);" just after.
Indeed, you are exactly right about that assignment being missing. I've committed a fix into the rsync-patches git repo.