¿La inicialización de llaves MSVC con dobles parece violar el estándar?

Mira este sencillo programa:

int main() {
    float f2 = 7.2; // OK, with warning
    float f3 = 7.199999809265137; // OK, no warning
    float f4{ 7.2 }; // Fails
    float f5{ 7.199999809265137 }; // OK, no warning
    float f6 = { 7.2 }; // Fails
    float f7 = { 7.199999809265137 }; // OK, no warning
}

Cuando se compila con MSVC 2015 utilizando las opciones predeterminadas (cl /W4, versión 19.00.23918), recibo los siguientes mensajes:

FloatTest.cpp(2): warning C4305: 'initializing': truncation from 'double' to 'float'
FloatTest.cpp(4): error C2397: conversion from 'double' to 'float' requires a narrowing conversion
FloatTest.cpp(4): warning C4305: 'initializing': truncation from 'double' to 'float'
FloatTest.cpp(6): error C2397: conversion from 'double' to 'float' requires a narrowing conversion
FloatTest.cpp(6): warning C4305: 'initializing': truncation from 'double' to 'float'

Este programa se compila bien con Clang 3.0-3.8 y GCC 4.5.4-6.1.0 (probado conhttp://melpon.org/wandbox), con solo advertencias para las variables no utilizadas. Además, eliminar / comentar líneasf4 yf6 resultar en una compilación exitosa (con solo una advertencia para la líneaf2)

Inicialmente parece que MSVC solo me dice que 7.2 no se puede representar con precisión como unfloat, por lo que es una conversión de reducción (que es ilegal en la inicialización de llaves). Sin embargo, el estándar (borrador N3337), la sección 8.5.4, nota 7, dice esto:

A reducción de conversión es una conversión implícita ...

delong double adouble ofloato dedouble afloat, excepto donde la fuente es una expresión constante y el valor real después de la conversión está dentro del rango de valores que se pueden representar (incluso si no se puede representar exactamente)

El énfasis es mío. Dado que 7.2 está dentro del rango de valores representables porfloat, su conversión afloat no debería ser una conversión de reducción de acuerdo con el estándar. ¿MSVC está equivocado aquí, y debo presentar un error?

Respuestas a la pregunta(2)

Su respuesta a la pregunta