The problem is, that PG behaves all right, except that it doesn't.
Everytime it returns
DELETE 0
(and surely it has records to delete and even without WHERE (DELETE FROM ec_product_recommendations) clause it is still DELETE 0) - It does not complain about referential integrity if that's what you'are about.