On a related note, there is actually nothing stopping anyone from becoming their own hosting provider.
If you are the kind of person that does not require alot of technical support from your host, then why not save the money and do it yourself?
Here is a really quick way to do it.
#1. Go to
https://www.linode.com and create an account. If you are prompted for a coupon code, try using "Network chuck" to get a free month.
#2. Go to marketplace, Choose cPanel, and install it on the smallest shared server at $5.00 per month. You can easily expand it later if you need to. Or if you don't need multiple domains and need something simple like a Wordpress site, choose Wordpress instead. (If you need both, choose cPanel first and then install Wordpress from it).
#3. Once setup, point your domains to it like you would any other (Or just point your A-records if all you need is web hosting).
#4 (Optional): Turn this into a business by add WHMCS from
https://www.whmcs.com (Only $18.95 per month).
The above setup lets you run your own webhosting business in the cloud, and sell hosting and other services to your clients. If you are your only client and prefer to keep it that way, then you can skip #4.