init_myformat():  None of the "mark" values can be empty strings, or
    LaTeX2HTML feels free to remove a surrounding element that
    contains no other content.  Since such an element is typically a
    named anchor used for hyperlinking, they should not be removed.
    Unfortunatley, making sure these marks are non-empty is the most
    direct way of avoiding this behavior.

Thanks to Dave Kuhlman for tracking this down; this was some excellent
detective work!
diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl
index 1f380cb..b7545b3 100644
--- a/Doc/perl/python.perl
+++ b/Doc/perl/python.perl
@@ -719,9 +719,16 @@
 sub do_cmd_nodename{ return do_cmd_label($_[0]); }
 
 sub init_myformat(){
-    $anchor_invisible_mark = ' ';
-    $anchor_invisible_mark2 = '';
-    $anchor_mark = '';
+    # These markers must be non-empty or the main latex2html script
+    # may remove a surrounding element that has not other content as
+    # "extraneous"; this ensures these elements (usually hyperlink
+    # targets) are not removed improperly.  We use comments since
+    # there's no meaningful actual content.
+    # Thanks to Dave Kuhlman for figuring why some named anchors were
+    # being lost.
+    $anchor_invisible_mark = '<!--x-->';
+    $anchor_invisible_mark2 = '<!--y-->';
+    $anchor_mark = '<!--z-->';
     $icons{'anchor_mark'} = '';
 }
 init_myformat();