Though in your particular case, the name of the cluster *is* sufficient to disambiguate, it's impossible to know that in general–you might have a cluster with the same name in multiple zones. It would slow down the command if we did another round-trip to check uniqueness, not to mention opening up the possibility of race conditions.
The --zone flag is listed as optional because it's only necessary if you don't have the compute/zone property set. But the zone of the cluster needs to be specified by property or by flag.
I hope that clarifies things!