To be fair, the add-ons are just containers installed and managed by HA. In most cases, you can install all of them as separate containers via something like Docker, but configuration takes more steps (though you also get more control).
Example: I have HA, Eclipse mosquitto, zigbee2mqtt, zwave-js-ui, node-red, Grafana, and influxdb all running as docker containers on two different devices (my main HA host wasn’t ideal for Zigbee and zwave USB dongles, so those are on a Pi 4). The other containers are accessible separately or from within HA as iFrame panels.
Nginx is a lot less painful if you use Nginx Proxy Manager. You get a nice GUI and can easily get SSL certificates with Let’s Encrypt, including wildcard certs. I’m running it in front of a docker swarm and 3 other servers, and in most cases, it takes me about 30 seconds to add a new proxy host and set it up with https using my *.domain.com wildcard cert. I also use it with Authentik as a forward proxy auth for SSO (since many containers out there don’t have the best security).