Fala Jeison, tudo bem?
Durante o curso, optei por utilizar uma versão mais atual do JavaScript e por isso, alguns pontos se tornam desnecessários quando relacionados ao curso anterior. Você pode ir mais a fundo assistindo aos cursos de javascript avançado aqui mesmo na Alura.
Sua primeira dúvida é em relação a inicialização do state fora do constructor, embora isso pareça um antipattern, com a versão atual do JS, conseguimos criar o que chamamos de class fields (propriedades). Utilizando dessa forma, não é necessária a utilização de um construtor, deixando seu componente mais conciso (classe sem construtor, não precisamos do this para acessar o state).
Sua segunda dúvida é sobre o bind utilizado no curso anterior. A diferença é a utilização das Arrow Functions e seu comportamento, que é diferente das Functions utilizadas anteriormente. Nas functions, o this terá valores diferentes baseado no local onde essa função foi chamada (por isso era necessário o bind), enquando nas arrow functions isso não acontece, o this sempre terá o valor baseado no local de declaração, ou seja, escopo léxico, o que torna o bind no constructor um passo desnecessário.
Repare, todas as atualizações do React, até o momento, são retrocompativeis, inclusive relacionado à mudanças de versão do JS. Ou seja, a forma anterior ainda é válida e funciona normalmente, mas muito dificilmente você verá novos projetos com essa abordagem.
Se algo não ficou claro, basta perguntar novamente!
Espero que esteja gostando!
Abraços e sucesso!