It looks like you have a very narrow perspective on C#.
I've never tried running .net on a non-windows platform, so I can't comment in that space. I'll leave that to someone else.
As someone who's built bespoke big data applications, scientific computing (if we're both talking about large scale computation for analytics), desktop applications, server applications/services, and web sites (one of which is within the US top 150 on alexa) in c#; I'll have to disagree that anyone working in the language is stuck with LoB applications and ETL tools.
I think you're missing my point, it's about sweet spots. C# has a sweet spot on windows desktop and ETL style data processing. You could have written all of those things in C++, Java or Python. But the ecosystem isn't there. There's no Hadoop, SciPy, Django or Rails. For crying out loud, just running a less compiler on Windows required someone to sit down and rewrite it from scratch. (The node story has improved on windows since then.)
And none of this looks likely to change. Windows has been a second rate development platform for some time now, and Microsoft don't mind.
I can't speak for all .net shops, but in my experience you roll your own. You sit down, discover your problem, and write a solution for whatever you need from scratch specifically tailored to your need and performance requirements. Afterward, you understand the code (and the intent behind it) very very well.
I don't lament the lack of third party frameworks. I take them as an inspiration when I find interesting ones, and I know my toolset well enough to re-work their solutions and make them my own in pretty good time.
For me, as long as whatever it is is meant to run on windows (and doesn't require native performance), C#'s sweet spot is whatever I decide it needs to be.
Having a C#-like language in which I can write code with performance comparable to native will put some icing on my cake.
Believe me, I'm a great advocate of building the thing you need rather than blinding using libraries, but there's some great stuff out there: lessc, RabbitMQ (although that works well on Windows), Riak, Postgres, neo4j, hadoop, jQuery (Microsoft saw the light on that one), elastic search, pygments. Of those, Microsoft can offer alternatives to 2 of them: MSMQ and SQL Server. The others are sufficiently costly to re-implement that you're likely to just try to work around the problem (I'd love to see someone attempt a DB with Riak-like reliability on .NET... RavenDB is not that DB.)
If you like Riak, there is a .net client library. There is a .net port of lessCSS. RabbitMQ works with .net. You can access postgres with .net. I didn't see any features of Neo4J that I can't do pretty easily with MSSQL and a custom DAL. You can talk to Hadoop from .net. I've been using jQuery with ASP.net since it was released. Elasticsearch runs on windows, and I don't see why you can't use it with a .net project. I don't really see the point of pygments, but it looks like it's pretty easy to use with IronPython.
So in those instances you have a choice. You can use those libraries/products as they stand, or you can roll your own.
It's getting better a bit since 2-3 years ago but before that Microsoft was always stuck in the 90's style of development while other platforms have moved forward significantly.
Nuget is a late attempt to follow Maven and yet still behind.
EntityFramework came in late and I heard ppl moaned.
Yeah, Microsoft's ORM solutions are pretty horrible but then... so is NHibernate. But NHibernate was better and five years earlier, so it was really hard to see why Microsoft even bothered with EF.
There is Hadoop, Microsoft have been pursuing it aggressively recently.
SciPy type stuff is best handled using F#, which also works on Mono, and has some features that I haven't seen in any other languages (e.g. Type Providers).
There are multiple .NET web frameworks, including Microsoft's own ASP.NET MVC and Web API, but also OSS efforts like FubuMVC, Nancy, ServiceStack, Simple.Web and more, most of which work as well on Mono as on MS .NET.
As you say, the Node story on Windows has improved lately, and most current languages work as well on Windows as on any other platform.
C# itself is probably second only to JavaScript in terms of cross-platform development: Xamarin for Mac and mobile; Mono for Linux (yes, it's incomplete, but Linux people should be used to that); Unity for game development across consoles, mobile devices, web and traditional PCs. By "cross-platform" I don't necessarily mean write-once-run-everywhere, which results in lowest common denominator dreck anyway, but the ability to reuse your skills and some code in many different environments and domains.
I've never tried running .net on a non-windows platform, so I can't comment in that space. I'll leave that to someone else.
As someone who's built bespoke big data applications, scientific computing (if we're both talking about large scale computation for analytics), desktop applications, server applications/services, and web sites (one of which is within the US top 150 on alexa) in c#; I'll have to disagree that anyone working in the language is stuck with LoB applications and ETL tools.