Can you give me an example where an array would be more beneficial than having another table with {id, name}? I personally have never found a use for them.
SELECT * FROM recipes r
INNER JOIN ingredients i ON (r.id = i.recipe_id)
WHERE i.ingredient IN ('mushrooms', 'sour cream')
load up some data and run explain analyze on both schemas/queries.