На самом деле мне даже и порядок вставки не нужен. Нужен просто детерминированный порядок, который не зависит от значения элементов, а зависит только от последовательности вставок.
Поскольку реализация std::map использует некое дерево, то добавить туда в существующие ноды пару указателей для поддержания двусвязного списка было бы намного эффективнее, чем содержать отдельный список (с отдельными нодами).