The current problems are security, upload bandwidth, and NAT traversal. As well as that your computer has to be on whenever your friends are accessing your stuff.
If (when) ipv6 becomes widespread, we will be able to cut out the NAT. If lots of people start doing it, then the upload bandwidth that ISPs give you will probably increase. And security should be solvable for most consumer purposes when the quality of software (both server and OS level) goes up -- it needs to ensure that your firewall is properly configured, etc.
So we're left with leaving your computer on. And that's an expensive problem, because it's not very power-efficient to leave a desktop computer running all the time to serve a website that gets two hits a day. That actually seems to be a strong argument against everybody running their own webserver. But maybe it doesn't really matter, because a lot of people run a computer all the time anyway. I'm not sure.