I think this is a very complicated question, actually. Both my kids do this (intentionally stop raising their hands). Have for as long as they have been in school.
Sometimes it is the situation your DS describes. Sometimes it is social preservation- nothing like answering every question to get the class bullies on your case. Sometimes it is truly to give others a chance- I think it really depends on the specific class and situation. Usually, my kids know that the teacher knows they know the answer. So unless it is furthering the class discussion, they don't feel like they need to volunteer; in those cases, the teacher will call on them if they need the answer provided and no one else is stepping up, or capable. But often, they don't feel the need to answer, and let another kid do it.
Does this bug me? Not because they are thinking of others, and the class dynamics, because I think overall this is actually a good thing. What bugs me is that it is pretty much a given that they will know most if not all of what is being asked. But that is a much different problem, if you know what I mean. And truthfully, as they get older, class time consists more frequently of nuanced discussions than specific questions, so this has become much less of an issue. But i feel your pain.