There are times when a go application needs a lot of additional files for configuration and anything else. Docker is a great way to bundle those in instead of needing to ensure those files are already on all of your compute nodes.
While it's not necessary, simply saying use 'systemd' is not enough.
How do you handle multiple applications not interacting or affecting the data of another if there's an exploit?
for some folks systemd is also 5th wheel in the cart