It has the same capabilities, the question is whether it has any additional abilities that would justify the added complexity.
The most obvious additional ability is that always
>>> d[SOME_EXPRESSION]
is equivalent to
>>> d[key]
for a suitable key.
This is a capability that we already have, which would sometimes be lost under the scheme you support. Also lost would be the equivalence between
>>> val = d[key]
>>> getter = operator.itemgetter(key)
>>> val = getter(d)
More exactly, sometimes it wouldn't be possible to find and use a key. Docs would have to be changed.
As I understand it, xarray uses dimension names to slice data. Here's an example from
>>> da[dict(space=0, time=slice(None, 2))]
Presumably, this would be replaced by something like
>>> da[space=0, time=:2]