I am not sure there really are many benefits. The Win32 API is kind of fundamental to how Windows is currently and has been designed. There is a tremendous installed base of applications that were written years (or even decades) ago in C using Win API, that are still currently maintained, which may need to utilize new features of modern (and future) versions of Windows. It is easier and cheaper to update those applications by staying within the original platform than to either rewrite them in .NET, or hack up some kind of interop between the legacy and the new.
Backwards compatibility is a key facet of the Windows OS platform, and I think it is easier to achieve that by building from the ground up rather than the clouds down. I don't think writing very low level code using the Win32 API has any major benefit over using the much simpler and more friendly .NET framework (and its wrappers around lower-level API's). Perhapse, in the rare cases, where insane performance is a key requirement...but I would opt for Managed C++ before I took the C & Win32 API route. I think the API's are simply there to provide that legacy support, and packaging those low-level API's with managed wrappers for .NET is an easier way to provide modern support than doing the inverse.