Some of you may not be aware, but you can have your own domain name on your blogs. All you have to do is to buy a domain name and set it up to redirect to your blog/free site. That way, you don't have to pay to host your site on top of the domain name charges. You can also expand your blog by having subdomains like 'subdomain.maindomain.com' and link it to another blog or page. Never get an upgrade by the blog provider because it'll be way more expensive than doing it yourself, as detailed above.
You can do that but the busier your site gets the more bandwidth is used. Subject to site crash which makes for a poor user experience. Depends if your site is farmer brown blog or a high tech company site with lots of traffic. I use both free and paid hosting. Depends on the material.