Q:

Windows SDK vs Visual Studio

We're currently facing some clashes between VS and Windows SDK, and it occured to me that there's something fundamental I don't understand:
Why does MS publish two separate lines of development tools for windows??   I realize WinSDK is free, and does not include an IDE - but why maintain two separate sets of headers and libs?   Shouldn't WinSDK in principle be a subset of a VS release?

A:

Windows supports programs written in any language or IDE.  To that end, Microsoft publishes a canonical set of headers, libraries, tools, and samples for that specific build of Windows.  
For example, there are separate SDKs for Windows XP, Vista, Windows 7, and Windows 8.  Each SDK has its own set of headers, although in practice each new SDK is a superset of the last.
These headers can be used with any C/C++ compiler, and are often converted for use in other programming languages (Delphi, etc.).
A different division of Microsoft produces Visual Studio, with its own release cycle.  They package up the headers and libraries, but typically not the tools or samples, for the latest build of the Windows SDK available at the time Visual Studio is released.

