Is it totally crazy to make a deployment server contact itself for apps? I just thought about it and it would reduce the need of having to do things double for the DS itself, then copy and push the same thing in deployment-apps.
Important: The deployment server cannot be a deployment client of itself. If it is, the following error will appear in splunkd.log: "This DC shares a Splunk instance with its DS: unsupported configuration". This has the potential to lead to situations where the deployment clients lose their ability to contact the deployment server.
In some cases you want (or have) to run an additional UF on a full installation (enterprise runs as splunk, UF as root to collect all system logs). If the full installation is a DS - it wont work. Splunk checks the hostname, localhost and loopback IP to prevent such situations. The rest of the puzzle is yours.