Хех. Как глупо я. Это можно решить гораздо проще. Мне не нужно искать рецепты, в которых есть хотя бы один компонент. Я могу (таким же образом!) Найти рецепты, которые я не могу сделать, потому что есть по крайней мере один компонент, которого у меня нет.
list_of_unavailable_components = ReceiptComponent.objects.exclude(product__in=list_of_available_products).distinct()
А сейчас.
list_of_available_receipts = Receipt.objects.exclude(receiptcomponent__in = list_of_unavailable_components).distinct()
Просто и чисто. Спасибо за сотрудничество; D