Having lived in Bulgaria and reached fluency in the language, I cannot imagine southern Slav languages withour it.
G and H are indeed very confusing. Gitler, O'Genri, etc. I am not sure what is the history of it. It could be that more Russians softened their G a la Ukraine a few centuries back, because all occurences of H in German or English was trasnliterated with 'Г', which now, nominally, is strictly G sound like G in 'God'.
Until 1868 the Serbs used гражданскій шрифтъ, identical to the one used in Russia until 1917. Unlike the Bulgarians, the Serbs wrote Cepбiя, but the adjective, over the course of the last few decades dropped the "e" because it was never pronounced. Thus while the country was still spelled with an "e" between C and p, the adjective lost it, i.e. србскій.
However, the appearance of ъ, besides being always at the end of a word ending in a consonant, also appeared sporadically where two or three consonants were bunched together, such as the word died, namely умъро. This form was retained even after the orthographic reform but not for long. Today the word appears without it as умро.
In other instances, the Serbs would use Russian forms with an "e' between consonants, such as терговец, even though the Russian word has an "o" rather than an "e." The Bulgarians, on the other hand, are completely consistent when it comes to using the hard sign as a half-sound. They spell the word as търговец.
Serbian Cyrillic contains 30 letters corresponding to 30 sounds. But Serbian has more than 30 sounds. Take for instance the word finger (прст, it used to be spelled перст, but the Bulgarians spell it as пръст with the ъ on between the second and third consonants rather than the first and second).
It is hard to say if half sounds need to be written since the consonants can only be pronounced a certain way. Look at the Semiotic alphabets; they have only consonants with vowels being added by diacritical dots. This the word shp could mean ship, shape, or shop depending where one places the dots.
I suppose it saves on printing but it is not phonetic. My favorite is the Serbian word for cape or ness (Russain несс). The Serbian word is рт. It is pronounced like "ert." The first consonant is clearly not a clean "r".
I suppose every language has its peculiarities to which one gets accustomed and then they seem normal, even those that are "phonetic." In Japanese, vowels i and u are often not pronounced following certain consonants. Thus sumo is pronounced simply as smo; gozaimasu is gozaimas, shitake mushrooms are simply shtake, and mashita is mashta.
English is an incredible orthographic solution. English has no spelling rules, but the multitude of sounds is written by only 27 letters, no diacriticals and all etymological roots of the words are retained. That is a lot more ingenious then any phonetic alphabet.