The point is that as long as you can remove elements, you can always completely repopulate the vector, even if operator=, assign, clear, swap and whatever else is missing.
1 2
while (!myFoo->barList.empty())myFoo->barList.pop_back();
myFoo->barList.insert (myFoo->barList.begin(),newVector.begin(),newVector.end());
So the removal of those functions seems rather pointless. If the container only allowed adding elements, but not removing any, then at least it would make more sense.
The question of why completely repopulating the vector is bad remains unanswered as well. Why is it bad? Would repopulating half the vector be okay? Why? A quarter? Replacing ten elements? Five? What's the difference?
Well I was thinking of a container class that needs to keep some sort of consistent internal state, or needs to inform its parent class when certain operations are performed. In that case, adding or removing elements using its publicly accessible functions are fine, since the body of those functions can contain the code necessary to do this, but reassigning the field to a brand new instance of the container class could leave the parent class in an inconsistent state.