crates aren't punishment unless you scold the dog and shove him in there. Crates are a den, or a nest. If you cover the crate with blankets, it becomes a place of safety and security for a dog.
Dogs are not "people too"...dogs are dogs and have different emotional needs than people. The typical mistake most people make with dogs, especially small dogs, is giving them too much of what small children need (overt love and affection) and not enough of what dogs need, which is a pack leader who takes care of things like security, safety, food, and generally being in charge so they don't have to.
Dogs are like children in one important way: they are always learning. for example, if your dog climbs on the furniture and barks hysterically at the mailman, and you try to dissuade the dog from this behavior by cuddling him, cooing softly, giving him a treat, you are not dissuading him at all, in fact you are rewarding him for behavior you do not want. You are essentially teaching him that he'll get treats and affection for behaving this way.
If you want your dog to be a picky eater and eat only what you hand make him from the people food, then when he doesn't eat his food, by all means, make him a special meal.