I have and run my own nodes for funsies. It's also useful sometimes for running random queries against the chain. I can run some code directly in the console and not worry about hammering someone's server. There's definitely a privacy aspect, too. If you had, say, 1000 ether, and split it into 100 accounts to hide the amount of ether you had but then looked up your balances using a 3rd party service, someone could link your accounts together and figure out that you're the owner of all of them.
And I don't have to have trust in the other servers. I can
git clone a copy of geth or parity and keep them around for a while; if there are no security alerts (e.g., GitHub being hacked, a CA issuing certificates to bad actors, or a malicious version of a client has been posted), then I can feel more safe in compiling and running the code. I can't say the same about a third-party site that I have to redownload each time I access it.
Also, I'm old and stubborn, so I like to make things hard for myself. Or, more precisely, I started using Ethereum pre-Metamask and the like and I don't have time to keep up with things, so I just keep using what I'm used to until it doesn't work.
If you're using a different chain, then you may have to run your own node (as you mention, a private chain is one of those situations). If you're using a chain like Ethereum Classic, solo-mining looks quite feasible (it looks like a four-GPU setup could find you an average of two or three blocks per month). If you're willing to deal with the variance, you could even run a small-ish farm and find a block on the main chain about once a month. There is a mining efficiency benefit if you run a node properly (latency, fees, and more). Plus, it keeps the network healthier by spreading out the hashing power.
... and somebody has to do it.