This behaviour is 'hardcoded' in the Model Mapping logic. Check out this line in Sdl.Web.Tridion.Mapping.DefaultModelBuilder
:
string displayText = String.IsNullOrEmpty(keyword.Description) ? keyword.Title : keyword.Description;
The reason for this is that it is considered good practice to use keyword descriptions for display text. Often in implementations, the keyword title has a numeric prefix, or other additional information to ensure the keyword title is unique. Additionally some implementations leave the keyword title untranslated and put the localized value in the description.
As you can see from the code, if there is no description, the title is used, so you always have this fallback. What are you using descriptions for if its not display text?