You have to take care of many things during gate sims run.
1. If you are using same RTL simulation verification enviroment for gate sims then you have to put some delay while driving the inputs as here setup and hold come in picture.
Why? The same exact stimulus should work in both RTL and gate sim (with or without timing). If you're driving the stimulus onto a synchronous I/F, there's no way you can violate setup/hold time. If you're driving the stimulus onto an asynchronous I/F, then you already take care of that problem by disabling the timing checks on those synchronizers (step 3).
2. You have to initialize all uninitialized fllops.
Why? Assuming all the necessary initialization of the chip is done correctly in the RTL simulation, you shouldn't have to do anything for the gate sim. Who cares if you have some uninitialized fllops in the netlist if they don't cause any problems.
3. Disable the timing checks of all sync flops.
Agree.
4. Initialize all memory and registers of DUT just before DUT comes out of reset.
This step doesn't even make sense. How can you initialize memories and registers when the chip is in reset? By using backdoor method? Again, the initialization routine that you use for the RTL should work for your gate sim.