another, quite obvious case is doing localdev wherein one has multiple services running, and wishes to start service A on one address locally and service B on a different address locally, each on the same port...
for example, having en0 have its' base address: 192.0.2.99 (/24 netmask) gw 192.0.2.1, and another address 192.0.2.100 (/24 netmask) with no gw;... I would start one service on .99, another on .100; and be able to interact with each service from a different host.
obviously, this wouldn't work were I binding to 0.0.0.0. Additionally, I don't want the service to bind on ipv6, and specifying 0/0 defaults to a 6+4 bind.