It is too easy to "not" smack or otherwise punish a child. Children do need punishments and a punishment needs to make a child unhappy, otherwise it is not a punishment. It is lazy parenting not to punish and it brings up spoilt and entitled children. A child is destined to push boundaries and, by getting punished, discovers where the boundaries are.
As for what kind of punishment, I think it totally depends on the individual child. I was very pro smacking before I had children, but have not smacked my oldest child to date (22 months). However, I do shout loudly and in an intimidating manner when he behaves really badly (manhandling his little brother or teasing/hitting our cat) and he does get "time outs" which work (up to a point...when threatened with a time out, he does walk out of the room himself, turn his back and then come in 2 minutes later, giggling). I think the important thing is consistency. A child has to know that he is doing something wrong and the same behaviour has to consistently lead to the same punishment. In that sense, a child "chooses" to be punished, it does not come as a surprise. I remember the few times I was really upset and humiliated about getting smacked when I was a child was when there was a misunderstanding and I was not aware that what I was doing was naughty. The rest of the time I was kind of "happy" to take my smack.
On an objective level, I cannot observe any difference at all in children that are smacked and children who are disciplined in other ways. As long as the parents are loving, playful and consistent, they have happy well behaved children. If they are lazy parents, uninterested in their children and inconsistent in their punishments, they have badly behaved, not very happy children.