Корректное определение звучит так:
FLT_EPSILON: This is the difference between 1 and the smallest floating point number of type float that is greater than 1.
Разница между 1 и минимальным чилом представимым в float большим 1. Говорить о том, что:
Машинный эпсилон - это минимальная разница между числами, которую компьютер в состоянии различить.
не правильно, потому, что как вы заметили, числа меньше FLT_EPSILON вполне представимы в float и вы вполне можете с ними работать.
Дело в том, что плотность чисел представимых в float не постоянна. Расстояние между 2 такими соседними числами может быть меньше FLT_EPSILON в окресности нуля. И наоборот для значений близких к MAX_FLOAT разница между соседними значениями может быть больше 1.
В python тип float соответствует типу двойной точности(64 бита) и в нем представимы все целые числа. Если же воспользоваться 32-битным вариантом, то можно получить "странное" поведение. Следующий код зацикливается.
import sys
from numpy import float32
a = float32(sys.float_info.max)
while a > sys.float_info.max - 10000:
a -= 1