I believe the general rule here comes with answer for following question:
Do you need same roles in the edge in the ToR and in the Core?
if the answer is "yes we need every role everywhere" then you need one policy domain.
if the answer is "no the set of roles is not overlapping" then you need more policy domains.
if the answer is "some roles needs to be everywhere, but majority not" then you can use global services as was suggested by Jeremy.
IMHO the reason for more policy domains is related to the hardware limitations = if you have small amount of roles you can use one policy domain everywhere even if you do not need edge roles in the core...
Regards
Zdeněk Pala