Это не свойственно MSVC, это требуется стандартом языка.
Я бы предположил, что имеет смысл , а не , чтобы снизить точность, если явно не запрошено, поэтому по умолчанию используется значение double,
6 значащих цифр точности, которые обеспечивает поплавок одинарной точности, редко бывают достаточными для общего использования и, безусловно, на современном настольном процессоре будут использоваться в качестве оптимизации с ручным кодированием, когда автор определит, что этого достаточно инеобходимо;поэтому имеет смысл, что для указания литерала одинарной точности требуется явный видимый маркер.