Snake and serpent mean exactly the same thing.
Is that really true? Of course they both denote the same class of animals, but that doesn't mean they mean exactly the same thing. They have slightly different connotations, as well as different word usage patterns.
Let's start with the latter, because it's simpler. First, there's a very slight difference in register. Centuries ago, only educated people usually said "serpent". Nowadays, most speakers have both words, but "serpent" still sounds a tiny bit more formal and classy. Also, even after music was no longer described in Latin, it was described in Italian, so "serpent", being a Romance borrowing, sounds a bit more "music-ish". And finally, there are some contexts where one just sounds better than the other—the most obvious being metrical poetry, where the difference between one and two syllables matters. Third, they differ in derived forms—"serpentine" is a common word; "snakelike" feels like an ad-hoc compound that you should maybe spell with a hyphen.
But also, pairs of synonyms almost always have different connotations. People don't always consciously know what the connotations are, and a dictionary (especially a small one) may not even mention them, but they're there, and usually consistent across most speakers of the language, and they can be teased out. For example, if someone, for no apparent reason, suddenly betrays you, you might yell "You snake!", but you probably wouldn't yell "You serpent!" Compare enough distinctions like this, and the picture starts to arise: Both snakes and serpents are treacherous, but for a serpent, being devious and subtle is central, while for a snake, subtlety isn't even required, and dangerousness is central. Where do those connotations come from? It might be centuries of different word-use choices, or register differences, or sound symbolism, or the influence of common idioms and cliches… But regardless, they are there.
Both of these factors affect metaphorical extension. When you're only using the shape in the extension, it's probably more about the register than about connotations: a plumber's tool uses the lower-register word and an orchestral instrument uses the higher-register, and more-Italian-sounding one. (It may also be influenced by the military serpentine, a kind of cannon.)
On top of that, even if two synonyms really were 100% interchangeable, which metaphorical extensions take hold in widespread use is largely arbitrary. Sure, maybe either one of them could have been extended to mean the plumber's tool, but so could dozens of other words, and "snake" is the one that happened to stick. And, once it has, that makes it even less likely for "serpent" to be extended the same way, because we already have a name for the tool, so there's no need to coin a new one.