It's always better to have as much functionality mutable via firmware update. Even if it's a day 1 factory update and it never gets updated again. You have an extra couple months to test and harden the design and prevent showstoppers.
However, anything safety critical or that could potentially hurt the device always needs hardware dedicated to it. As an example, using a couple I2C-adjusted buck regulators. Very convenient, until your i2c gets wedged or you get bit flips due to noise on the bus or a i2รง peripheral glitch with some other device on the bus. Now your 1.2v rail has 4 volts on it. You can't fix that with software.
However, anything safety critical or that could potentially hurt the device always needs hardware dedicated to it. As an example, using a couple I2C-adjusted buck regulators. Very convenient, until your i2c gets wedged or you get bit flips due to noise on the bus or a i2รง peripheral glitch with some other device on the bus. Now your 1.2v rail has 4 volts on it. You can't fix that with software.