One big change to the way things used to be is a common understanding that kids (especially toddlers) just have meltdowns sometimes. Being tired or hungry or frustrated, recognizing that, fighting it down and acting like a normal human being is an adult skill that kids have to learn themselves (and frankly, not every adult has). Parents shouldn't punish meltdowns, only take the kid away from the situation and let them cry it out and calm down and they'll be okay again.
What parents should punish is wilful disobedience, which the kid already knows is worthy of punishment by virtue of doing it, and in that regard there's many more creative punishments to mete out than spanking.
My favorite: for a particularly grievous sin, have the kid go to their toy box and pick out a toy to give to charity. THEY have to do it, and they have to tell you why they have to do it, so they know you know they understand.
Kids get plenty of toys these days, and the toy they'll eventually settle on will be one they haven't played with in months, so it's not like you're depriving them. But kids are also greedy little bastards and the psychological horror of giving up something that is their thing will be a greater deterrent than any temporary pain could be. Seriously, if you've got young kids you have to try it, they act like you're telling them to shoot Old Yeller and they'll do anything to not have to do it twice.
At the risk of turning this into a child-rearing thread, I will disagree with you on a few points.
First, avoiding meltdowns is not an "adult skill" nor is it something that people learn for themselves. It's a skill that can be taught, and like with anything related to brain/emotional development,
age will play a factor. Our job as parents is to teach those skills.
My approach was to decouple emotions from behavior. I explained to my kids that it's ok to feel what they are feeling, but it's not ok to behave that way. If they are having problems behaving, then they need to separate themselves from the group because it's not fair to other people to deal with their behavior. Obviously (I hope) this is not a one-time thing but an ongoing approach.
I wouldn't necessarily "punish" a child for a meltdown, but there should certainly be consequences for their actions. I remember taking one of our kids home from a school event because of a meltdown. Removing him temporarily and then allowing him to still enjoy the event as if nothing happened is why, in my opinion, some adults never seem to learn. It's not "punishment" to say that people who throw tantrums that disturb others don't get to hang out with other people.
This was reinforced later when the child wanted to do things. We discussed if he could be trusted to not have a meltdown. We also discussed why he had the meltdown. Was he tired? Hungry? Kids aren't stupid. Given some guidance they can figure these things out and learn to deal with it. As parents we need to anticipate these things at when seeing pre-meltdown clues ask, "Are you hungry? No? You sure? You're not going to melt down are you? Because if so, we should just leave now."
Your taking away a toy thing is an interesting punishment. I don't like it because it creates an association with charity that I don't think is at all appropriate: "When I do something bad, I have to give something to people less fortunate than me. If I am good, I get to keep things." It also objectifies the less fortunate in that it makes them out to be tools for discipline and kind of ruins future discussions about why it's good to give to charity.
I've always tried to tailor the "punishment" to what the child did. I eventually came to learn that this approach is called natural consequences. It takes a bit of thought sometimes, but overall I have found the approach to work quite well. If you're ever at a loss, ask the kid what he thinks the consequences should be. The answer can be quite enlightening.