I don't understand the problem here.

d[p=q] --> d.__{get,set,del}item__((), ...,
p=q)

d[1,
p=q] --> d.__{get,set,del}item__((1), ...,
p=q)

d[1, 2,
p=q] --> d.__{get,set,del}item__((1, 2), ...,
p=q)

d[1, 2, 3,
p=q] --> d.__{get,set,del}item__((1, 2, 3), ...,
p=q)

d[1, 2, ..., n,
p=q] --> d.__{get,set,del}item__((1, 2, ..., n), ...,
p=q)

Now obviously the n=1 case is a wart. But the n=0 case isn't a wart. It's just like n=2, n=3, etc.

You can't tell the difference between a single tuple argument and n arguments for any n≠1.
As far as I can tell the problem when n=0 is no more or less serious than the problem when n≥2. I don't see the point of adding another special case to the spec when it doesn't even solve the general problem.