Su is irregular when adding a possessive suffix. You add "y". Compare it with "soru" (question), another word that ends in "u":
Benim sorum - Benim suyum (not *sum)
Senin sorun - Senin suyun (not *sun)
Onun sorusu - Onun suyu (not *susu)
Bizim sorumuz - Bizim suyumuz (not *sumuz)
Sizin sorunuz - Sizin suyunuz (not *sunuz)
Onların sorusu - Onların suyu (not *susu)
Your examples are correct, but I wouldn't necessarily call it "irregular" - let me explain why.
Turkish is an agglutinative language, meaning that words are generated by adding suffixes to a root. For example, "okulum" (i.e. "my school", okul=school + -um=my). As you can see, the root (okul) ends with a consonant (L), and the suffix (-um) begins with a vowel (U). As far as the Turkish language is concerned, this is an ideal situation.
The problem arises when a root ends with a vowel and its suffix begins with a vowel as well.
Turkish does not like adjacent vowels. It can, in very rare instances, tolerate them in foreign loanwords, but 99% of the time it's a non-native construct that makes words difficult to pronounce. Thus, to overcome this issue, we have the magic letter "y", known as a "kaynaştırma ünsüzü" (literally, "fusing consonant"), that helps "fuse" the two words together in an easier-to-pronounce way by creating an inflection point that aids vocal transition from the root to the suffix.
For example, the root "su" (water) does not merge naturally with the suffix "-um", because it would create an adjacent vowel situation at a syllabic point. So... who you gonna call? The magic fusing consonant "y", of course! So the word becomes "suyum" (my water), and it's good to go.
The reason I don't call this an "irregular" situation is because it's quite common to run into when constructing words in Turkish. Unlike irregular words in other languages (such as irregular verbs in English or French, every single one of which simply have to be individually memorized), there is nothing to memorize here. It's rather a basic rule: if you see adjacent vowels, bring out the "y". If you don't see them, proceed as usual.
You're correct about the fusing consonants.
But "Su" is irregular. Because "Su" ends in "u"; "Kuzu" ends in "u" too. We do say "Benim kuzum", just one "m" is enough. Why don't we say "benim sum"?
It is due to a linguistic quirk: The former spelling of the word was "suğ", which indeed required a "fusing consonant". Over time, the "ğ" dropped off, but the conjugated form (as is seen in "suyum", for example) stuck around. Perhaps due to the brevity of the word, people thought "sum" sounded odd. More likely, the "ğ" never quite went away in everyday spoken language - that is, it became soft and inaudible enough to be dropped in written form, but present and distinct enough to still influence suffixes.
So I suppose the modern written form has become irregular, while the original sound has remained regular.
I've never heard anyone pronounce "su" with a "ğ" sound.
Besides, how does the "ğ" affect the next suffix? Let's say there is a girl whose boyfriend's name is "Altuğ". If she were to say "My Altuğ", she would say "Altuğ'um" (and not Altuğ'yum). So even if the word were "suğ", it would still be "suğum", not "suğyum". So where does the "y" come from?
It's probably as you said in your second theory: the word was too short. So a second syllable was needed.
I'd say "su" is irregular both in written and in spoken.