If content_revisions had an "on delete cascade" on the key referring to content_items you could just delete the item and be done with it...this would still allow the deletion of individual revisions, of course.
This doesn't answer your question but sometimes I think we make this stuff a lot harder than necessary by not using SQL's referential integrity operations...