данные живут в vec, который проверяет индексы. поэтому use-after-free невозможнен.
а, наверное можно совершенно случайно сохранить индекс элемента vec в какой-нибудь структурке (указатель), потом элемент удалят из списка с формированием битого индекса, а потом аллокатор снова отдаст этот элемент, и никакие проверки указателей нас больше не спасут?