Я думаю, что lower_bound делает поиск по упорядоченной коллекции, не опираясь на тип исходного контейнера. Итераторы map-а работают как упорядоченный контейнер, поэтому в нем можно вести поиск по любому подходящему компоратору, в том числе и по тому, который считает некоторые элементы одинаковыми. А в самой мапе повторяющиеся элементы держать нельзя соотвтетственно