1. Why is it useful for a programmer to have some background in language design, even though he or she may never actually design a programming language?
Understanding the design of a language will inevitably make you a better programmer. Also, knowing the design and makeup of a few different languages will assist you in deciding which programming language would be better suited for the project. This can help with those 'big-picture' decisions that can affect "reliability and cost of execution" (pg.25).
2. How can knowledge of programming language characteristics benefit the whole computing community?
You need to be familiar with more than 1 or 2 languages if you have hopes of being a well rounded programmer. Having knowledge of other programming languages not only increases your abilities, it also increases your vocabulary and therefore your ability to understand what language would be better to use for the problem at hand. And, if the ones in control that choose languages are better informed, maybe the stronger languages would edge out the ones that are obsolete.
7. What is the disadvantage of having too many features in a language?
Having too many features in a language can be detrimental to clear programming practices. If there are too many features then the basic simplicity of reading a program could be lost. The simpler and more user-friendly programming languages allow for a smoother creation process, especially if there are many people working on the same code.