I believe "geek" typically describes someone obsessed with a particular topic and/or with media/games/tech/some-corner-of-popular culture. Conversely, "nerd" typically describes someone obsessed with a particular academic topic and/or with learning in general. It's a significant difference.
Though not typical, it's also worthwhile to remove the "socially awkward" connotations of the use of "nerd" and "geek" terms and ascribe those to "dork" instead. Many self-described geeks and/or nerds don't consider themselves socially handicapped and it's deleterious to society to muddle academic engagement with social impairment.
The categorizing is indeed irrelevant. However I find it useful as a way to explain to self-proclaimed geeks why I don't care about the things that they think geeks should care about.
If the programmers around me self-declared as nerds I would reverse the distinction. Because I don't care about the label at all. What I care about is concisely explaining why it is that you can find someone who is competent at programming who does not share a lot of the interests that they assume I should share.
Because you can be one without the other, and people frequently assume that because you're one, it means that you're the other--and predict your actions based on that (for example, by buying you stupid geek toys when you are merely a nerd.)
I don't understand what you're saying. The reason it is useful to make this distinction, is to explain to people that don't see the distinction (and thus assume that, for example, someone who likes math watches Firefly; or that someone who collects MTG cards will be able to fix their computer), that in fact there is a practical difference between the two categories, and that they should keep them in mind so as to not offend people that aren't both by assuming they have traits of a group they don't.