I do releases by baking a new virtual machine with the code+config built in and booting it. I guess it's possible to do that on real hardware, but calling it simply "harder" borders on disingenuous.
I basically do that for my Xen VMs with NixOps in the "no provisioner" mode. Would be exactly the same for bare metal, plus I get dev VMs that match the prod environment for free.