Ответ 1
На самом деле AssignmentExpression может быть любым выражением, это выражение на самом верхнем уровне, которое содержит все остальные выражения (см. Спецификацию).
Однако,
export default = { some: 'thing', other: 'thing' };
на самом деле это не присваивание, это синтаксическая ошибка. Если вы используете оператор присваивания в выражении присваивания, вам нужна левая сторона и правая сторона. Так что что-то вроде этого было бы действительно:
export default foo = { some: 'thing', other: 'thing' };
Просто использование объектного литерала должно быть правильным, потому что, как я уже сказал, AssignmentExpression может быть любым выражением.
Таким образом, Esprima кажется неправильным.