Why use event dispatchers vs interface when ED's need a hard reference?

This makes it sound like I should use event dispatchers whenever possible, even when passing values from one BP to another, and only use interfaces when I have no choice.
Am I right on this?
If the goal could be achieved with either, what would you choose?