Да, вставка / удаление элементов std::list
не делает недействительными указатели, ссылки или итераторы на элементы, за исключением удаленного элемента. Даже конечный итератор не изменен и не признан недействительным.
Таким образом, это безопасно.
Но, поскольку нужно тщательно задуматься о безопасности, это все еще нецелесообразно.