Объясните почему именно так, с умножение переполняется, а при сложении как будто просто отсекаются лишние биты.
Потому что именно так и есть: для сложения числа приводятся к одному порядку. Порядок FLT_MAX -- 2^127, порядок 1.0 -- 2^0. Т.е. единица сдвигается на 127 разрядов вправо перед сложением с FLT_MAX. Ни в одном стандартном представлении чисел с плавающей точкой столько разрядов не предусмотрено, лишние разряды отсекаются, единица превращается в 0.
Минимальное число, которое можно прибавить к FLT_MAX и получить бесконечность равно 2 ^ (127 - 24). При нормализации этого числа с FLT_MAX получается единица сдвинутая вправо на 24 разряда, как раз в последний значащий разряд мантиссы float.