Even a full redeploy shouldn't really mess anything up & I would never rely on my HA system not needing a reboot. The only time you might get an issue is when a scheduled event is about to trigger. Otherwise, the worse that should happen is missing one or more sensor events and that really shouldn't have any impact.
If, however, you have ended up with a flow that is impacted by a restart, assuming you can't refactor it, I would split it to a new instance of Node-RED and then have one instance that contains stable, sensitive code and another that is less sensitive and so can be changed more often.
Personally, I do also have a development instance that I keep on my laptop where I can mess about. That, of course, doesn't have access to any of the hardware my live instance has (mainly an old CIESCO wireless serial module and my RFXtrx433E USB transceiver. But that is fine because I take data from the hardware and use dedicated flows to immediately create fairly raw MQTT data. Those flows enhance and standardise the incoming data.
I keep the processing flows separate so it actually doesn't matter what system they run on. In fact, I am slowly moving things off my old Pi2 onto a newer Pi3 but I'm trying to refactor and simplify the flows as I go so it will take a while.
I no longer use Arduino's for my sensors (apart from 1 that uses the CIESCO connection), they've all been replaced with ESP8266's instead so that they can also communicate directly to MQTT.
Disaggregation is a wonderful thing!
I am still not using a git repo for my flows. I do make a complete copy whenever I update Node-RED itself - got caught out a few times in the past with that where something broke badly. Thankfully, that doesn't generally seem to happen much now. I also have a NAS which uses a backup app to backup key folders from the Pi automatically.