This was an early limitation, which was fixed in Windows 1803 with the release of the Windows.Graphics.Capture API. [1]
That being said, your general point that there's so many ways to develop an app for Windows, and that not all of them support the same features, is definitely true. I think the general advice these days is that if you _can_ build your app as a UWP, do that. Otherwise, use the Win32 APIs as sparingly as possible, defaulting to the UWP APIs. Legacy apps are a bit trickier, and that's where Microsoft is investing in things like the Desktop Bridge (run Win32 apps in a UWP container) and XAML Islands (host UWP controls in a Win32 app).
That being said, your general point that there's so many ways to develop an app for Windows, and that not all of them support the same features, is definitely true. I think the general advice these days is that if you _can_ build your app as a UWP, do that. Otherwise, use the Win32 APIs as sparingly as possible, defaulting to the UWP APIs. Legacy apps are a bit trickier, and that's where Microsoft is investing in things like the Desktop Bridge (run Win32 apps in a UWP container) and XAML Islands (host UWP controls in a Win32 app).
[1] https://docs.microsoft.com/en-us/windows/uwp/audio-video-cam...