Multicast is the case where one or more messages sent in a network is
routed to a generalized subset of the systems in the network, including the
null set, all of them, or any level in between.
Unicast is the special case of that in which it is sent to exactly one of
the systems, at least on the ultimate hop.
Broadcast is the special case in which it is sent to all of them.
Clearly there are algorithmic differences here. When I send to all the
devices in a network, it is possible to use (as Novell Netware did at one
time) an algorithm in which a router only accepts transmissions that
succeed in an URPF test (we only accept messages from the interface[s] that
we would use to forward a message to the source address of the message),
and forwards them to all of its other interfaces. In unicast routing, there
is a pretty specific network map generated. But in multicast routing, where
one might send to any possible subset of the systems, one has to have some
variation on joining and leaving the group and figuring out what subset of
the links a message should be repeated on at each router.