When you tell a child that they are naughty, selfish, lazy, fat, stupid, rude, pushy, careless or anything else, you label them. And if they believe that label (and why shouldn't they -- they're trained to believe what we tell them), they will start to live up to it. They'll think, "There's no point to make an effort, I know I'm lazy." Or "What have I got to lose? They've got me down as naughty anyway." Of course, this won't be a conscious thought process, at least not when they're small. But if you give them alabel, they'll live up to it.
What you have to do is condemn their behavior, not them. You can tell them, "That's a selfish thing to do," or "It's very rude to push." That way you're not passing comment on them, but only on their behavior. If at this point you feel like shouting, "But he is lazy!" I'm not telling you you're wrong, though it would be very un-PC of me to admit you could be right. I'm just saying that you should never, ever say so in front of him, or anyone else in case it gets back to him. Save it for your most private thoughts after the third time in a row he goes out without even clearing the table, let alone helping you load the dishwasher.
Positive labels are a different thing entirely. If they're accurate (don't pressure your child by making them live up to something they can't), they likewise encourage your children to behave like their label -- thoughtful, careful, brave, or whatever.
And actually, you can sometimes use these positive labels to reinforce good behavior when they've lapsed: "I was really surprised to see you behave so rudely. I always think of you as a particularly polite person." It reassures her you haven't given up on your positive view of them, so it's not too late to live up to the "polite" label.