The pydoc module has two DocHandler classes and two DocServer classes. I think that they can be easily factorized. DocServer may also use serve_forever()+shutdown() instead of serve_until_quit()+quit flag, to be able to wait the server (with shutdown()).
No refactoring is needed. The second copies are part of the new server. The old server was depreciated in 3.2 and is supposed to be removed along with the tk panel for 3.3. After that there will only be one of each again. This issue can be used for that purpose.
Here is a patch for this. Not much to it as the hard parts were already done. Apparently there was no tests for this, test_pydoc still passes without it. Does there need to be any messages for the -g option? Pydoc help is displayed in the case -g is used. That already includes the new -b usage.
> The old server was depreciated in 3.2 and is supposed to be removed > along with the tk panel for 3.3. Ok, fine. I applied your patch and removed the serve() function.