admin/commerce/products/add page says "You have not created any product types yet" when I have
Those admin pages are generally based on the menu, so I think it makes sense that the commerce module is using the menu to build it.

It doesn't have to be like that, though, you can change it up pretty easily:

function MYMODULE_menu_alter(&amp;$items) {
  $items['admin/commerce/products/add']['page callback'] = 'MYMODULE_commerce_product_ui_add_page';
}

function MYMODULE_commerce_product_ui_add_page() {
  $types = commerce_product_types();  

  if (count($types) == 1) { 
    drupal_goto(_MYMODULE_commerce_product_admin_add_path(key($types)));
  } 

  return theme('MYMODULE_product_add_list', array('types' =&gt; $types));
}

function _MYMODULE_commerce_product_admin_add_path($type) {
  // Method taken from commerce_product_ui_menu()
  return 'admin/commerce/products/add/' . strtr($type, array('_' =&gt; '-'));
}

function MYMODULE_theme() {
  return array(
    'MYMODULE_product_add_list' =&gt; array(
      'variables' =&gt; array('types' =&gt; array()),
    ),
  );
}

function theme_MYMODULE_product_add_list($variables) {
  // Build up an HTML list of links based on $variables['types'], similar to theme_product_add_list()
}