Ваш пример фактически не переполняется в среде с плавающей запятой по умолчанию в системе, совместимой с IEEE-754.
В такой системе, где float - это 32-разрядная двоичная с плавающей запятой, FLT_MAX - 0x1.fffffep127 в шестнадцатеричной записи с плавающей запятой C99. Запись в виде целого числа в шестнадцатеричном виде, это выглядит так:
0xffffff00000000000000000000000000
Добавление одного (без округления, как если бы значения были произвольными целыми числами точности), дает:
0xffffff00000000000000000000000001
Но в среде с плавающей точкой по умолчанию в системе, совместимой с IEEE-754, любое значение находится в диапазоне
0xfffffe80000000000000000000000000
и
0xffffff80000000000000000000000000
(включая указанное вами значение) округляется до FLT_MAX. Переполнения не происходит.
Ситуация усугубляется тем, что ваше выражение (FLT_MAX + 1), вероятно, будет оценено во время компиляции, а не во время выполнения, так как оно не имеет побочных эффектов, видимых для вашей программы.