> Should anyone be able to connect to an ISP for free?
Yes if they are willing to interconnect with that ISP at every exchange point. In practice that's expensive and what transit providers are for. Here's my proposal for a simple set of rules that would solve all these disputes:
https://news.ycombinator.com/item?id=7644339
>Why can't I host my website for free, just paying an upfront cost for a server, and get it hosted in an ISP's facility?
You should be able to do something similar to that to provide service for only that ISP's users. In fact Netflix does exactly that with some ISPs:
https://openconnect.itp.netflix.com/
This doesn't allow you to host your website for free because it only adds connectivity to the users of that specific ISP, not the whole internet. For that you have to buy transit.