How to delete all nodes referencing a given one?
I think a "quick and dirty" module would be the more elegant way. I did something similar recently in drupal 6 with ubercart. I have a content type that sometimes needs to be associated with a product and sometimes doesn't. When one of the custom nodes is deleted, if it has a product associated with it, that needs to be removed as well:

your_module_nodeapi(&amp;$node, $op) {
  if($op == 'delete') {
    $product_nid = db_result(db_query('SELECT nid FROM {content_type_product} WHERE field_product_list = %d', $node-&gt;nid));
    if(!empty($product_nid)) {
      node_delete($product_nid);
    }
  }
}


In this case, field_product_list was a node reference field added to the product. I'm sure something similar would work in your case.