Контейнеры unordered_* нуждаются в хеш-функции. По умолчанию они используют std::hash, но специализация std::hash для std::pair<T1,T2> отсутствует в стандартной библиотеке. С другой стороны, упорядоченные контейнеры полагаются на std::less (по умолчанию), а std::pair - operator<. Вот почему это просто работает.
Чтобы иметь неупорядоченный контейнер с pair, вам нужно будет предоставить хэш-функтор самостоятельно. Например: