Don't. 😉
Unless you have a pretty good reason, and a special edge use case, I don't see a good reason to do it.
In general (and by best practice), your Search Heads/Indexers/other full Splunk instances should be dedicated to that role, and don't do anything else. However, if you need to run a certain input/script on them, you can do that without having a seperate UF, and you could distribute such settings from a Deployment server.
So - as mentioned in the other posts you linked, it's possible, but something I'd reserve for a lab/test setup/POC/any other non-productive setup, and also only if I have good reasons. Other than that, you'll have additional overhead/troubleshooting effort, unless you're firm enough with Splunk that this won't cause you trouble. You'd have to setup ports that differ from the defaults, etc.
Basically - tell us why you think of doing this, and we can give you some much better pro/cons. 😉
Hope that helps - if it does I'd be happy if you would upvote/accept this answer, so others could profit from it. 🙂
... View more