I think the problem with using Visual Studio comes down to a question of big solutions versus small solutions. Big solutions are integrated environments like Visual Studio. They can be quite powerful, and are often the quickest way to get a product out the door, provided you don't want to do anything that goes outside of their scope.
Small solutions are smaller tools like gcc, gmake, or find.
I think part of the reason why Unix OSes have worked for so many years is that rather than provide a single big solution, they provide smaller tools that are capable of working together. This toolbox type approach allows new tools to seamlessly plug into the frame work. I find it interesting that this distinction has nothing to do with open-source versus proprietary business models. Whereas groups that espouse open source solutions generally are required to use other people's tools, as they typically cannot affort to develop a big solution approach. Nothing makes one long for open source solutions more than spending extended time with the MS development suite.