--> "Overriding is a feature that allows a subclass or child class to provide a specific implementation of a method that is already provided by one of its super-classes or parent classes."
By considering the definition of overriding, to answer your question
1. If the changes are common we can have those in the parent class ( XXX-Work) itself. Module specific implementation only we can have it in the Module classes.
2. Yes it is valid to have same rules in the class hierarchy in case of overriding (In need of specific implementation for child class)
3. Yes, As you mentioned, in your case if the changes are common for all modules we no need to have Flowactions/sections in each module we can define in Parent class and reuse for all child classes. YES we achieved reusability here.