I figure the practice of giving songs titles that have nothing to do with the lyrics is a way of keeping some street cred, of distancing yourself from easy pop worship by casual fans. If you want to know what's going on with a band that gives its songs obscure names, you can't just hear them on the radio; you've got to buy the album , or at least download some of it. The true fans will be into the band enough to recognize that the song's real title is "Sliver," and they get to laugh at the Johnny-come-latelies who start screaming for "Grandma Take Me Home."
I think Led Zeppelin was the first well-known, major band to give songs those kinds of titles regularly: "Black Dog," "D'yer Mak'er," etc. I have been reliably assured that "Kashmir" doesn't quite fall into this category.
At the same time, though, the mighty Zep would haul out the occasional "Stairway to Heaven" or "Whole Lotta Love," where it would be pretty unmistakable which song you were talking about. Near as I can tell, it was New Order that took this to the next level: Hardly any New Order song titles reflect what's in the lyrics. "Blue Monday"? "True Faith"? What has that got to do with anything? I am a New Order fan, and I have to occasionally remind myself which song is which, although not with the titanic "Bizarre Love Triangle."
And it's pretty ridiculous. Why can't they just give us a name that we can quickly associate with the song? Some really good bands do a lot of this kind of thing these days, like Radiohead or the Shins, and it's time for them to cut it out. You know what the Beatles called that song that went "Let it be, let it be, let it be, let it be"? Coldplay would have called it "Armored Arrow," but the Beatles called it "Let It Be."