A thought experiment: What if we gave up being able to specify default values for only some names in ⎕VGET. Then the argument to both ⎕VSET and ⎕VGET would be two items, the second item in ⎕VGET being optional. For ⎕VGET we would have to enclose or mix a set of names only, when not providing defaults. And for both ⎕VGET and ⎕VSET if we were given pairs we would have to ↓⍉↑ before processing. On the upside, we would not have to enclose when we have one item to get or set.
In my opinion, that's a rather heavy price. Enclosing for a single set/item is quite normal. You have it in ⎕NEW object (⊂'Param' value) and in ⎕DT⊂timestamp
I do wonder how often specifying some default values but not others would actually arise as the structure 'Name1' ('Name2' Value2) 'Name3' ... is not very APL-like, and does not arise that easily I think.