The largest single difference between the language the Tibetan script was designed for and the language spoken in Lhasa today is not a matter of vocabulary. It is that a distinction once carried in the vocal cords is now carried in the pitch of the voice.
Classical Tibetan had voiced initial consonants: ga, ja, da, ba, dza, zha and za were voiced, and their unvoiced partners were separate sounds. Modern Lhasa speech has devoiced them. What has taken over the job of keeping the words apart is tone. A syllable whose written initial was voiced is spoken on a low tone; one whose initial was voiceless, or which carried certain prefixes and superscripts, is spoken high. The pair that used to differ by voicing now differs by pitch, and no information has been lost, only relocated.
This is why Tibetan spelling repays learning rather than punishing it. The tone of a syllable in the modern language is largely predictable from its written form, including from the silent letters, so a reader who knows the spelling knows how to pitch the word. The relationship runs the other way too: a Tibetan speaker who knows the tone has a clue to the spelling.
Not every variety made the same trade. Amdo dialects retain much of the old consonant system and are correspondingly less tonal, so the neat account above is a description of Lhasa and not of Tibetan as such.