It was my understanding that to distribute your app through App Store (the ONLY way to publically distribute), you must pay the $99 per year, regardless of if you charge for your iPhone app or not. This is a bit lame if you ask me..
It's true that you must pay $99, even if you're developing freeware. I don't know if it's per year, but probably.
Part of the cost is for the encrypted certificate that apps need to be signed with in order to legitimately run on the iPhone. This has always been the case.
It also allows Apple to know which developer is responsible for an app. So if your iPhone app ends up being malicious, Apple knows who is responsible.
but seriously $99 for deploying to all iPhones? I think that is a bargain. Even if your "just" a single developer. If you make something usefull, you should easily get that investment back on sales, mindshare, userbase or sheer cool factor.