To prevent hardware failures from logic reconvergence inside the destination clock domain, there should be no combinational logic on clock domain crossing paths. Each register in the source clock domain should drive only one register in the destination clock domain, with no logic in between.