Depends on the language. VS is the best for C++ and .NET, sure, but not everyone writes C++ or .NET. For example, all the best Java IDEs are cross-platform.
Depends on what you're doing. .NET? Of course. Java, Python, C++, Ruby, etc? Not really.
"If you are building ASP.NET MVC applications, you really don't have a better choice than Windows"
That's like saying if I'm building iOS apps, I don't really have a better choice than OS X. Yes, it's technically possible to do both on other platforms, but in reality, it doesn't happen that often.
Admittedly, there's still no good deploy solution for C# at the moment that isn't a colossal load of work, but web deploy is definitely not a good choice. It's like MS looked at every single choice and went "Hmm, we'll pick the worst of these two options!".
Good luck if you need to do a rollback stat.
VS + C# + Azure integration is excellent, and there is nothing which prohibits turning up a 2nd instance any more so than using AWS, Docker, Chef or whatever your choice may be.
I am also not convinced Visual Studio is a bad habit, as it has many features and tools which are often superior to open source alternatives (debugging, integration, intellisense). I currently use Vim + Golang and Emacs + Clojure; comparatively those environments do not make me biased enough to say VS does not have some incredible upsides.
My assumption is that most people may not have spent enough time with the Windows tools to judge them fairly as we have all been tremendously productive on Linux and there are ideological issues spawned out of the decades of Windows dominance which slant these discussions.
Is it alright for your site to go down for minutes?
I am not a Windows fanboy of course. I know Linux works really well for dev environments but if you prefer to use an IDE for development and not just a simple editor, then I would argue that it is hard to beat Visual Studio. Sure you can program even in notepad. Again, a choice. CLI is not always the answer. But then again, Windows does have Powershell which has evolved well.
I will give you one example. If you are building ASP.NET MVC applications, you really don't have a better choice than Windows as you can integrate it really well within Visual Studio, link with Git and pretty much do everything within VS including deployment. It just works. So there are uses cases like these where Windows makes sense.