I think where the differences in opinions is coming from is that some here are describing the behavior that they interpret as "Suppose" to happen, albeit unrealistic. While others are describing behavior that is "Actually" happening, and more realistic.
You can't just tell your military personnel that they can't discuss politics, religion, sex, discontent, disparaging remarks of the chain of command, etc... That is unrealistic, unenforceable, and totally against human nature. However, you can dictate that such conversations will not happen "On duty" in uniform, or in an environment where such comments could be interpreted as the opinion of the military in general. And this is very enforceable. This is the way I was taught and directed growing up in my military career. And this is where General McChrystal messed up. He allowed such opinions to be recorded "Outside of the Family" and used against the military. And before you ask, and define the parameters further, I'll say that there is nothing wrong if McChrystal had such discussions with his staff or peers. Yes, as a General, he is in a position where his opinions can influence those in his command. It is his responsibility to ensure that any of his personal comments do not have a negative impact on the moral and/or performance of his command. And yes, this is quite doable. However, if the general can't do this, then most definitely he needs to refrain from making any personal comments or opinions.