Direct3D didn’t work out for me so I hate it.
Basically what I gather from your post is:
#1: You are a fanboy of OpenGL. Anyone who talks down on OpenGL, realistically or not, is a fanboy of Direct3D.
#2: You are an amazing master who knows “proper” and “modern” C++.
#3: You have a chip or 2 on your shoulder regarding Win32 as well.
We try to put our biases aside here.
Please do the same.
Allthough to be honest, Win32 is pretty awful if you compare it to for example .Net or QT. (Its better than X11 though, but that isn't really much of an achievement).
The whole COM thing takes some time to get used to and it does raise the barrier of entry slightly, i fully understand why michaben hates it, the open alternatives (CORBA etc) aren't much better though and it is one of the better ways to share compiled classes between languages and compilers. It would have been worse if Microsoft had gone with CORBA instead of COM and having a procedural API that requires a wrapper library for each language that uses it really isn't much better.
Using Direct3D from python vs using OpenGL from python(Without a third party wrapper) is a good eye opener for how useful COM is.
To use Direct3D from python all you need is the PythonCOM package(Which you can use to take advantage of any COM based library such as those that are included in Microsoft Office (creating a word document from python is just a few lines of code for example, all thanks to COM)), to use OpenGL you need to create a binary (.dll/.so) module specifically for Python and OpenGL(Now since OpenGL and Python are both fairly popular there are allready several such modules to choose from but the same isn't really true for other languages and libraries.