Language and music have a lot in common in that respect, it's perfectly possible to be proficient at either without having a very deep understanding of the theory as long as you are willing to put in the hours, and having that deep understanding is - as far as I've been able to discern - absolutely no guarantee for being good at making music or communicating with other people. It may help some but I doubt that it is the kind of thing that works for everybody in the way that you assert. It's hard enough to get kids to learn a new language, even if it has some direct applicability. Getting them to learn an abstract science which lays a foundation that they then may be able to apply to learning another language may well be one demand too many.
Still, for whoever it works it may be worth the extra investment in time and effort.
Humanities sorts are terrible at communicating with those who are not humanities sorts, just as most doctors and lawyers are terrible at communicating their specialties to the laymen. I am not talking about studying linguistics to the ends of getting a degree in it but in a more pragmatic sense, if you want to learn a bunch of languages than it is very useful to learn what all those languages have in common so you do not have to relearn the same thing in new contexts, you just learn the contexts.
>Language and music have a lot in common in that respect, it's perfectly possible to be proficient at either without having a very deep understanding of the theory as long as you are willing to put in the hours
They do but becoming proficient is different than success. Satie and Bukowski were proficient but not at all ignorant but plenty have success while being ignorant. It is that pragmatism thing again, what are your goals, learning music theory will probably not help much if you want to become a success in a popular music genera but it could be very useful if you want to become a success across genres. Where do you want to shift the ignorance and the knowledge? what will be of most use to your goals.
And in my experience your CS degree example simply fails: CS does not prepare you at all for dealing with the various programming languages and their implementations of various concepts. The parts of CS that would apply to that bit you can pick up in a few weeks by reading some books and even then you're going to be dealing with implementation details most of the time by the time you want to apply that knowledge.
If you understand variables, assignment, control structures (if, for, while, pattern matching etc) and abstraction mechanisms (subroutines, functions) then you've got the bulk of it. But it isn't going to help you more than a little bit in tackling a mid sized Java, Rails or C++ project.
If you were going to design a new programming language or write a compiler for an existing one then it may well help, and also if you are going to be working on novel data structures or to try to improve what's already there.
Being a linguist or studying linguistics may well help me to read works in dead languages or maybe to analyze other people's writings. Because that's the kind of stuff that I see the linguists around me do that seems to actually use their skills.
If there would be a single bit of advice that I could give to someone that intends to study multiple languages then it would probably be: take a year or two of Latin. Even though it is a dead language that little bit of foundation will help you gain a much easier entrance into other languages all over Europe (if those are the languages you intend to learn).
If you are going to study in language areas outside of that region, say Asia then I have no idea what would help other than to move there an immerse yourself for a couple of years.