"ceph osd crush set" should treat "foo=" as if foo wasn't mentioned on the command line
The current behavior, using an empty string as the name, is quite confusing.
Instead of an error message, a better behavior would be to act as if the entry wasn't mentioned on the command line at all. That is, "foo=x bar=y foo=" would be the same as "bar=y".
Example: I want to feed "pool=default host=$(hostname -s)" as decent defaults to "ceph osd crush set". The above would let the admin remove those defaults.