Once an account runs more than a few campaigns, I'd put the shared list to one job only: true noise. That means words like 'jobs', 'free' and 'reviews of', which are junk everywhere, so nobody has to maintain them in five places.
The trouble starts when a term is junk for one service but valuable for another. Say a dental clinic blocks 'cheap' account-wide. Now the implant campaign never sees 'cheap implants' searches, and those can come from people who actually book.
Campaign-level lists take more upkeep, but you control each one. So my approach is a small shared list for real noise only, with anything that carries commercial meaning pushed down to the campaign it belongs to. How do you handle the split?