Well, this was a surprise to me too, but apparently Linux does this:
$ ping 0.0.0.0
PING 0.0.0.0 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.105 ms
...
$ nc 0.0.0.0 22
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.10
...