Part of the query planner's index selection phase is to collect all paths over which the query has predicates (see the mongo::QueryPlannerIXSelect::getFields function). The implementation ignores negation predicates inside an $elemMatch value expression. The consequence is that the planner may fail to generate plans which index negation predicates inside $elemMatch value.
Original Description
A query containing an $elemMatch with negation predicates is not considereding all plans.
The Plan with an index which has an array, which the query includes a $elemMatch with a negation predicate is not considered. A similar query without the negation predicate does include the Plans.
Note that only the plan for b index is considered (see second query result from the steps)