This is going to keep going in circles :)
(1) This discussion is not about function overloading.
(2) A pure virtual function must be overridden and implemented in a subclass, if you wish to be able to instantiate that subclass as an object; otherwise, the class is abstract.
Derived classes that implement this pure virtual function may call this implementation somewhere in their code. If part of the code of two different derived classes is similar then it makes sense to move it up in the hierarchy, even if the function should be pure virtual.
All I am trying to figure out here is that if its a MUST to override [...] a pure virtual function.
If you want to instantiate a class, then that class must have an implementation of all the functions that were declared pure virtual in an inherited class. This means that, yes, you need to override those pure virtual functions.
You have been told again and again that you do not need to overload anything, and that overloading is irrelevant to a discussion of pure virtual functions. Why are you not listening?