Поскольку std::set не может содержать повторяющиеся элементы и всегда сортируется, std::set::equal_range всегда будет возвращать диапазон, в котором либо нет элементов, либо есть 1 элемент. Технически да, это все еще диапазон, но какова цель этого алгоритма? Для std::set это кажется совершенно ненужным.
Подробнее здесь: https://stackoverflow.com/questions/488 ... -range-for