I hope I can answer at least part of your question, and with luck perhaps assuage your frustration to some small degree. You asked about origins:
Lose comes to us from Old English
ORIGIN Old English losian [perish, destroy,] also [become unable to find,] from los [loss.]
Choose comes from the same language:
ORIGIN Old English cēosan, of Germanic origin; related to Dutch kiezen.
In Old English, losian would have sounded something like LOH-zee-ahn, while cēosan would have sounded like CHAY-oh-zahn. Both these words are in infinitive form, and would have different conjugations.
In Middle English, losian became losien and cēosan became chesen or chosen. Now, the double-o construction, seen in words like choose and boot, originally indicated a long vowel sound, which itself originally meant literally a long vowel sound, i.e. one that was held for a longer period of time. There weren't any markings to indicate duration, so an extra letter was added to indicate that a word like boot should actually be pronounced the way we pronounce boat today — exactly analogous to German's pronunciation of das Boot, which does not sound like something one wears on one's feet.
But there was another Middle English word for lose, which was leosen (from OE lēosan), and it's not clear if our current word has a single ancestor. Possibly a merging of the two histories resulted in the pronunciation we have today.
Now, I wish I could draw a clear line for you that brings us from past to present and illustrates why today choose and lose and even whose perfectly rhyme but dose and moose do not, and why we pronounce close (meaning near) differently from close (meaning to shut), but the plain truth is I'm just not that smart. English pronunciation is quirky and peculiar in ways that defy description, much less understanding. If there were anything at all to be done about this, we would have an intolerable situation on our hands; but as there is nothing we can do about it, the situation must be endured. Be comforted by the belief that all these pronunciations will change in time — although to what is not at all clear.
I'll leave you with an old joke, and hope you can put aside your frustration long enough to laugh at the pronunciation and spelling mess we have inherited.
Q. How do you spell fish?
A. Ghoti! Just use the gh from rough, the o from women, and the ti from action (or ration or station or — well, you get the idea).
[Source for the above etymologies: Origins: A Short Etymological Dictionary of Modern English, by Eric Partridge]
Although such variation could be the result of things like when the word was borrowed into the language, this variation is probably due to the prosodic structure of the words; we get different vowel sounds because of the way that stress influences vowel quality in English.
In English, unstressed vowels are generally reduced. Take the word record for example.
The noun form takes first syllable stress: [ˈrɛ kɚd]. If you aren't familiar with IPA, note in particular the [ɛ] vowel and the [ɚ] r-colored schwa vowel. Schwa (and sometimes [ɪ]) is what often shows up in reduced, unstressed vowels in English. Since stress is on the first syllable, we get the r-colored schwa in the second syllable.
The verb form takes second syllable stress: [rə ˈkoɹd]. Note that the now-unstressed [ɛ] was reduced to [ə], schwa, while the [ɚ] now retains the full [o] sound (with an [ɹ] "r" after it).
Now for bicycle and unicycle:
bicycle [ˈbaɪ sɪ kəl] has primary stress on the first syllable. The "cy" syllable is unstressed, and so it is pronounced as a mere [sɪ] (or even [sə] by some). Note that tricycle has the same stress pattern, and has the same vowel.
unicycle [ˈju nɪ ˌsaɪ kəl], being a longer word, has multiple stressed syllables. Primary stress, again, falls on syllable #1, but the important thing is that secondary stress falls on syllable #3, the "cy" syllable. This means that "cy" is pronounced as a full [saɪ] instead of a reduced [sɪ]. Note that motorcycle has the same stress pattern and, again, same vowel.
Best Answer
The question posed
makes an incorrect presupposition. That's the cause of the problem.
Deny the presupposition and the problem goes away.
That presupposition is that
This is False.
The fact is that the spelling of modern English words does not give more than a vague guide to their pronunciation.
Vowels, especially, are terribly inconsistent, because there are fourteen phonemic vowels in American English (see the list here -- there are even more in other dialects), all represented by only five vowel letters, in many traditional ways, all inconsistent. Each way was designed centuries ago by people who knew no phonetics, spoke many languages and dialects (not all of them English), and thought they were writing Latin.
Any dictionary will tell you the spelling of English words. A good dictionary (which American dictionaries are not, alas) will also give the pronunciation in IPA or Kenyon-Knott. Spelling and pronunciation are separate, and should be learned separately, like the singular and plural forms of German nouns.
So the answer is that go is spelled with the same vowel as do and to because that's how they're spelled. There is no other reason. No matter what your English teacher told you. Sorry; it's not their fault, though -- they were taught this lie, too.