According to the docs, we exclude _id by default for wildcard indexes.
We should allow indexes like
db.foo.createIndex({_id: 1, "$**": 1})
to be created. (Right now, this fails since we require a wildcardProjection and _id is not explicitly excluded.)
This may also mean that an index like
db.foo.createIndex({"a": 1, "_id": 1, "$**": 1}, {wildcardProjection: {"a": 0}}
should be allowed too.