Create proper UV islands without removing vertex doubles
Select the edges you want to be sharp, press Ctrl + E, mark sharp. Add modifier: Edge Split. Check Edge Angle to do it automatically. Check Sharp Edges to do it manually. Check both for a combination.

You can later also select all edges you marked sharp (use the space search function, I don't know what menu it's under), then mark them as seams if you want. Seams tell blender where to separate geometry. Usually, this is where sharp edges are, in order to hide seams on textures.