For the case mentioned in this post, they are looking to reuse signalMethods and queryMethods so it makes sense to use a “base workflow”. If your pre/post functionality is more related to logging or tracing, I would go with interceptors.
Keep in mind that interceptors are registered per worker (not per workflow), so the interceptor logic is going to be executed for any Workflow Execution running in your worker.
I am not sure about this. Can I ask from where did you get this?