Joel's rules strike me as a little more specific than necessary, but I can very much relate to his feelings. I have experienced devs "working from home" who disappear all day and hold up the whole team because we can't find them to ask a quick question. The point is that when you say you are on the clock - then you should be working. I personally wouldn't care so much about the exact specifics of your internet connection or whatever. But, if you tell me that you're working then I expect that you're actually at your computer working and not laying by the pool or playing video games.
It's equally easy to say that you'd just fire somebody who you did not trust to work at home with no rules. But, as with many things, it's easy to take this hard line approach with your imaginary company and theoretical employees - quite another thing in reality though. Some people are very productive but maybe not so disciplined. A few sensible rules and expectations can prevent problems.