^^^I would love to show you my .gmk, but it's a little messy right now. I need to clean it up a bit first.
Anyways, I think we're getting bogged down on what ultimately, are miniscule differences of approach. What you would have done, and what I did, are all but
identical, using the difference between 2 variables (one for the rupees and one extra variable) to mark how many rupees to add, one per step, with each type of rupee it's own object, but essentially "empty" except for marking the value of the rupee (and in my case running the script that would be run by the parent in yours).
The only difference, the ONLY difference that I see, is that your extra variable was the current rupees plus the rupees gotten, so adding to the rupees to your wallet until they reached that point, whereas my extra variable was just the value of the rupee you collided with, added one at a time to your wallet and removed one at a time for this second variable. Basically the same thing.
As for the rupees, like you I have multiple rupee objects, the only difference was that I didn't create a parent object for them, since the collision event, the only event they had, and the only thing that would have been in the parent in the first place, was different for each of them (added a different value to the worth variable), so a parent served no purpose the way I did it.
Like I said, the differences are a lot smaller than they're being made out to be.
EDIT: But now that I think about it, your way would be a bit simpler, because rather than having to change the values of 2 variables to add to the rupees, your way would only have to change one. So I think, yes, I will change it.