It's not just that the tests, criteria, and internal guidelines for reviewing, and eventually approving or rejecting an application are shrouded in mystery. The secrecy is compounded by the fact that those tests, criteria, and guidelines are continually changing over time. So the same application that was perfectly OK a month ago may fail the review today, and Apple won't tell you how or why, except citing vague reasons like the bandwidth issue that bit Castcatcher.
Anyone aware of a petition or anything like that? (too lazy to google but strangely not lazy enough to not write about this).
It seems that if enough registered developers signed a reasonably written, petition (and had some of the major developers of major indy apps) sign on, they may be able to be heard. My guess is that those with a lot of success are scared to "bite the hand that feeds them" but the uncertainly is extremely demoralizing to a developer. I'm not going to stop developing because of the fear, but it does certainly make me want to hedge my bets and not "risk everything" on the hopes that my apps get accepted into the store. True innovation, however probably does require more of the "risk everything" attitude. It may simply take getting some exposure on the front of a few of the apple news sites, and a few big developers in an "open letter" to bring about some change. Does the NDA override our right to unite and beg for some clearer groundrules? Is there any reason the SDK can't include the same tests that Apple themselves are using to vet applications (if such things truly exist? Things are appearing more subjective these days... and admittedly some have to be judgement calls, but something like bandwidth usage is easily implemented in a test suite).