OK, tracked this down to trigger
cr_revision_del_ri_trg(). Is it a design choice that an item can't be deleted if it has a live or latest revision set or is this a bug? If former, how should a cr item be deleted with a single command whether or not it still has those revisions set? It seems to me a bit counter-intuitive since if an item has any revisions at all, it also has latest_revision. So what phase 3 of content_item__del tries to do is totally pointless since it will raise the abovementioned error always when there's any revisions. And if there aren't, well, there's no need to iterate over related revisions and try to delete them.