Not to mention a fourth kind of person - one who just wants services that work better than what the cloud offers.
By definition, self-hosting means the service is under my control, doing what I need, customized for my use cases. And because I use only open source stacks, I can (and have) even modify the code to customize even further.
And that's ignoring the fact that free, self-hosted options can often provide features that third party services cannot for legal, technical, or supports reasons.
For example, my TT-RSS feed setup uses a scraper to pull full article content right into the feed. A service would probably land in legal trouble if they did this. And while it works incredibly well, like, 90% of the time (thank you Henry Wang, author of mercury-parser-api!), if it was a service, that 10% could result in thousands of support emails or an exodus of subscribers.