I'm 100% against the way the app store works right now, but I don't have a problem with the idea of those two things if they were implemented in a better way.
If you compare $99 to the cost of a code signing certificate it's a good deal. The problem is that BOTH are bad value for developers. The value in signing is identity verification and none of the systems we have are doing a good job of that right now.
IMHO, Apple, Microsoft, and Google are purposely keeping code signing / trust systems awful because it benefits them. Imagine an ecosystem where apps were signed with domain validated certificates, which would be free (or very cheap), instant, and better than what we currently have, and it definitely feels like entrenched interests are working to keep things from improving.
Apple taking a 30% cut would be perfectly fine if there were competing app stores. If they're providing services worth a 30% cut, developers will be willing to pay that.
I thought the app store would fail. My exact sentiment at the time was "there's no way developers are going to be dumb enough to give up control of distribution." Wow, was I ever wrong :-(