Depends on the game and game mode. When I first started playing Unreal Tournament 2004 online, I had no idea what a clan was actually. I met up with a bunch of people who had this strange tag in front of their names, they were all nice so I played a lot with them in public games. After a while they asked me to join them, which I did because they were pretty cool. Now, about four years and four lan party's later, I still hang out with them and I consider them very good friends.
Mind you, we're not a very large group. That's why we didn't play too much competitively. But we have participated in some cups and leagues, which was a very nice experience really. It's very different from publics because you work more as a team, and the difficulty is also much higher. Still, having to show up each weak at a certain time to play for two hours was a bit of a drag. Fortunately we were too lazy to train or else it would have been far worse.
Now in Left 4 Dead, I am the only one of my clan who plays it, so naturally I play in publics. That's okay in most games, generally people are nice, and it is somehow very satisfying to get a gold medal on a hard map of survival with complete strangers. But for example in the Versus mode of that game, there are usually tons of leavers. Right when you get to play as infected, suddenly some guys don't want to play as survivors and you get to fight with bots, or not at all, which is a major drag.
I have accumulated some friends in that game. Friends, as in people who I played with and were especially nice, regardless of skill or the lack there off. And it is much more pleasant to play with those people, since you know there aren't any rage quitters or flamers or racists or other annoying folk. I won't say we form a clan, but you can't call it a public game too.
So my vote goes to Clan methinks. Overall it brings a far better experience. However publics are an essential stepping stone to getting that far. So if there would be a both option, that would get my vote.