Não é recomendado usar “use strict” no ES6?

Ainda não estou familiarizado com o ECMAScript 6. Acabei de clonar o repository React Starter Kit, que usa o ES6 para o código do aplicativo. Fiquei surpreso ao ver que o linter está configurado para proibir ocorrências da diretiva use strict , que eu achava que era recomendada no JavaScript pré-ES6. Então, qual é o ponto?

Os módulos ES6 estão sempre no modo estrito. Para citar a parte relevante da especificação :

10.2.1 Código de Modo Estrito

Uma unidade sintática do ECMAScript Script pode ser processada usando a syntax e a semântica do modo irrestrito ou restrito. Código é interpretado como código de modo estrito nas seguintes situações:

  • O código global é um código de modo estrito se começar com um Prólogo da Diretiva que contenha uma Diretiva de Uso Rígido (ver 14.1.1).
  • O código do módulo é sempre código de modo estrito.
  • Todas as partes de um ClassDeclaration ou um ClassExpression são código de modo estrito.
  • O código Eval é um código de modo estrito se começar com um Prólogo de Diretiva que contenha uma Diretriz Restrita de Uso ou se a chamada para eval for um eval direto (ver 12.3.4.1) contido no código de modo estrito.
  • O código de function é um código de modo estrito se o FunctionDeclaration, FunctionExpression, GeneratorDeclaration, GeneratorExpression, MethodDefinition ou ArrowFunction associados estiver contido no código de modo estrito ou se o código que produz o valor do slot interno [[ECMAScriptCode]] da function começar com uma diretiva. que contém uma diretiva estrita de uso.
  • Código de function que é fornecido como os argumentos para os construtores internos de function e gerador é código de modo estrito se o último argumento é uma seqüência de caracteres que quando processada é um FunctionBody que começa com um prólogo de diretiva que contém uma diretiva de uso estrito.