Мне кажется, разницу можно объяснить так:
просыпать - spill in disorderly fashion.. as a rule accidentally... For example, Он случайно просыпал муку на пол.
рассыпать - scatter, and often on purpose to scatter things. For example, Он рассыпал корм, чтобы накормить кур.
Конечно, контекст очень важен. Слова очень похожи по значению.
Also these words cant' be used with liquids.