For what it's worth, I just checked on NetBSD to see how their ping behaves, and it also accepts link-local IPv6 addresses without a scope ID. Similar to iputils, if a scope ID is unspecified, it chooses one based on the routing configuration.
This doesn't make the behavior "correct", of course, but it's at least consistent across implementations, which counts for something. noah