Very, very good question, and I don’t know if I will answer it satisfactorily.
Yes, language evolves, and yes, particular features of language are “naturally selected” because they count as an improvement.
The catch is that humans have conflicting criteria for what is desirable in human language. These seem to result in an equilibrium: languages do not evolve too far in one direction, because to do that would fulfil one criterion but break another.
For example, easiness is a criterion; and lots of phonological change is aimed to make language easier to pronounce. But if that trend went unchecked, it would continue until all human language consisted of “uh”, and it does not: there are several countervailing criteria, including communicativeness, vividness, distinctiveness, and iconicity.
And that’s because language is not used for just one purpose (to communicate), or with one goal (to be easy—and easy phonology is not the same as easy morphology).
English has had a slow, lumbering evolutionary process to make vowel length predictable, which April McMahon goes through in her textbook on language change: Understanding Language Change . Since vowel length is entirely predictable in Scots, you could argue that Scots is the evolutionary endpoint of English.
Yet even within English, there has been backsliding in this process. British privacy with a short /ɪ/ follows the long-term evolutionary trend, to make vowel length easier to learn. But in this instance, the trend runs afoul of iconicity, which says that if privacy comes from private, the two words should sound the same. Hence American and Australian privacy use the same long /aj/ as private.