What is interesting in the case of "friend" is the different use in diffenrent languages. I read somewhere (it is of xourse no hands-on knowledge, but just from books), that in the USA people tend to become 'friends' as quickly as visiting a new neighboor. And that together with the quick use of ones first name. But that 'friends' of that category really are just aquaintances, which you have no deeper connection to. In Germany, from where i come, it is somewhat different. You usually don't call someone by the firstname, unless he (or she) is a child, someone of a common peergroups (like in university every student is normally already on a first name basis, if you are a student too), someone of a lesser social 'rank' (like pupil to teacher). But normally you call someone "Herr xyz" (Mister xyz). And in connection to this there is the definition of 'Freund'. If there would be a scale from 1 to 10, where 1 complete stranger and 10 soulmate, then we in Germany start to call someone friend, at perhaps 5, and a good friend at 7. As i understand it, in America a friend would be already someone at 3, good one at 5. (These numbers are of course not to be taken literally, they are just to illustrate the difference).
In regard of the function of a friend, i would say, a friend is someone who cares for you and whom you care for. I don't think someone who is of the "friend-as-neutralised-enemy paradigm" (as mentioned in above posts) would count as friend for me. With a friend i just don't have to have such kind of feelings/thoughts. One can just be, who one is, and the friend can do exactly the same.
Ogion