На сколько мне видится, в каждом конкретном случае удобно использовать свой механизм конечно, а в данном случае может быть переопределить push_back, чтобы возвращать указатель на ново-добавленный элемент?
А как Вы переопределите если push_back не виртуальный? И что даст указатель на новый? Проблема-то в том что старый адрес "уплыл".