> - in-app purchase does not provide a restore button (which I've never seen in any other app btw)
Really?! Every app I use has a restore button. As a user, I'm happy they reject your app. Otherwise, if I buy that "thing" from you (via IAP) on my iPhone, it's not available on my iPad, iPod touch, or even iPhone if I restore it to factory settings. The point of IAP is: you purchase it once, it's available on all your personal devices. But your method is: every new device must purchase it again and again and again. I'm not saying you're scamming, but you're not playing by the rules customers have come to expect.
So, I'm with Apple in this specific case. In my view, your app "deserved" to be rejected. But, a 2 week interval between review results? That really sucks. Shame on them.
I couldn't find an appropriate reference for that specific case, and besides, I changed the purchase button to check for a restore first, an failing to find that, ask the user to pay. But that still didn't cut it with the reviewers, they wanted an explicit button named restore.
I think even in this case, yes, it should be there.
But if you've changed it (to something even more elegant) and they still rejected it, shame on them!