а вот если один поток делает пуш бек, а второй там итераторы какие-то держит, то они внезапно будут иногда инвалидироваться
Со списком не будут. Но с С++11 список хранит размер, а значит, например - пушить в начало и в конец уже нельзя (до С++11 насколько я понимаю на каких то реализациях это бы работало).