NodeMCU 32S boot pin as output

Hi everyone, I have a question about an ESP32 that I'm using for a project.
I know that many of its pins are used for different functions and some of them change state during boot. Since for my project I need to use quite a lot of pins I need to know if it's safe to use (as output) a pin that changes its state during boot.

For example, GPIO 0 should be HIGH during boot, but if I connect it to a stepper driver DIR (direction) pin, it doesn't make any difference if the value of DIR is LOW or HIGH until the STEP pin is set HIGH. So is it safe to use such pins as outputs?

Also, does the code in the "setup()" section run after the boot process?
This is just to make sure that if I need to set a pin value at the beginning of the sketch, it does not mess with the boot process.