I don’t think it matters for the purposes of this suggestion if MSVC never supports 16-bit float types of any kind. It could matter to ctypes, but not to struct. We’re not proposing to do arithmetic on such types, just to unpack/pack the storage formats to/from Python’s floats (64-bit floats).
If, e.g., an ML researcher wants to pick through a 2 GB file of bfloat results on Windows, using Python, the compiler used to build Python is irrelevant. Nothing about bfloat matters in that context except the raw bits, which Python can rewrite into native 64-bit float format with no support from the compiler (beyond general-purpose int arithmetic, shifting, and logical operations).
Likewise in the other direction. There’s never a need for Python to do any bfloat arithmetic.
That some compilers do support it isn’t a strong argument to me. It’s only suggestive of that the type does have enough use to convince other OSS projects to devote much more extensive (than is being asked of Python) efforts to support it “for real”.
What’s being asked for here is relatively tiny (in the absence of “scope creep”), and implementation of the little that’s wanted is wholly divorced from compiler support for the type.