Even as a native English speaker, this is one of my more common mistakes, along with weather/whether[/wether].
How did we end up with the word with the long-o having one o, and the word with the short-o having two?
I pronounce lose and loose exactly the same, and have no problem differentiating them in writing.
> How did we end up with the word with the long-o having one o, and the word with the short-o having two?
Neither is pronounced with a long "O" sound or a short "O" sound, and they both have the same vowel sound. (A long "O" would be the vowel sound in "lone", for example. Short "O" is like "log".) The difference is that you use your vocal chords to pronounce the "S" in "lose", making it an English "Z" sound.
I think English might be second only to Chinese in terms of how phonetically opaque it is. Unlike say Korean, where if you can speak it you can spell it and vice-versa, English is requires you to just know.
English is kinda neat in that it's a fusion of all the different lingua franca's of the time throughout history.