i reallllly dont think messi is selfish. I think messi is actually one of the smartest forwards in todays time. Being selfish would be trying to get a goal even if it is much easier to pass to your teammate (hello cr7). But when messi is in a sticky situation he will often pass it. The times he doesnt pass it is because he has a higher chance of getting a goal than if he did in my opinion. It seems to me everytime he does a brilliant pass, whoever receives the ball seems to miss the shot anyway. Then again this could be because barcelona kind of lack good finishers, besides messi and villa not many of the other players are good at getting goals. Pedro is good but he hasnt been playing lately and xavi/iniesta while brilliant arent known for their finishing capability. Then theres other people like keita,masherano,sergio.b who arent really finishers either.
So unless messi can find villa, which when he does he often does play the pass, it is probably much better for him to take it than to pass to the other guys which arent really finishers.