Sorted.
Tested using:
<?php echo '<h1>get_query_var(cpage)' . get_query_var('cpage') . '</h1>' ;?>
<?php echo '<h1> get_comment_pages_count ' . get_comment_pages_count() . '</h1>' ;?>
<?php echo '<h1>get_option(page_comments) '. get_option('page_comments') . '</h1>' ;?>
get_query_var(cpage) and get_comment_pages_count() don't work if they come after the pings callback, when comments and pings are separated i.e. comments first, then pings
<?php wp_list_comments( 'type=pings&callback=my_theme_list_pings&style=div' ); ?>
Therefore paged navigation for comments can't come at the bottom of the page but must come after the comments but before the pings.
It used to work; somewhere in the last upgrade or two it stopped working.