When I was at Microsoft, software developers could come from a mostly-Unix or even VMS background without it being a severe limitation; recruiters and technical teams knew that most universities were full of Sun, SGI, DEC and other non-Intel hardware. Windows had not yet established a huge foothold in the server world (it was 1997 when I started), but I'd say the same is true today, even at Microsoft, unless you were in a role where knowing Microsoft conventions inside and out were a critical starting point. There really aren't that many of those jobs. Technical skills are, in fact, transferable.
So, if you, a Linux-only guy could get a job at Microsoft, your options can't be that limited, even if you don't want to consider that as an option.
However, there are certainly employers that are less open-minded. I overheard a colleague of mine, who has about 10 years experience writing Java, talking to a recruiter at a Java shop that complained my colleague seemed to be mostly .Net focused, because, at the time, his current gig of roughly 3 months, mostly involved writing ASP.Net MVC code in C#. The previous 10 years of employment history were apparently too ancient. Not every recruiter is smart.
Aside from that, just to reduce the scope of their search, some employers arbitrarily pick a number of years experience with technology X as a threshold for consideration. This is a bigger problem in a poor economy or in an oversupplied specialization.
Personally, I prefer being a generalist, because I like the mental shifts required to adapt to different technologies and paradigms; it expands my toolbox when I need to use, say, a functional technique in an object-oriented language; and, most importantly, it expands my options. But being a specialist in a specific technology is in fact an advantage in many contexts; you might find it fairly lucrative to be particularly deeply knowledgeable about, say, the inner workings of the Linux kernel. A pretty substantial number of web and embedded companies build on Linux or other Unix platforms.
Keep in mind, though, that geography can affect your options as well. Embedded stuff isn't particularly huge in Seattle, for example, though it's a bigger deal in Tokyo, sometimes in Portland, certainly Boston, and parts of the Bay Area. Unix-based web environments are a huge part of what goes on in the Bay Area. In Seattle, that's mostly true, but, unsurprisingly, in the shadow of Microsoft in Seattle/Redmond/Bellevue, a pretty large number of companies develop on Microsoft technology, even for web-focused companies.