Anna, sei que sua dúvida tem 2 semanas com relação a minha resposta, mas entrei hoje aqui e vou deixar um resumo do que eu entendi pesquisando:
1) Nesse caso sem a flag "-std=c++11"
o que pode ocorrer é deixar em função do compilador, a forma como o MinGw é criado pode ser que nele já, de alguma forma, coloca por configuração padrão do compilador presente nele de gerar o executável já com uma versão mais recente do c++ ou algo do gênero. A declaração explícita dela na linha de comando é mais por garantia de você obter o código desejado.
2) A ausência do arquivlo Makefile acarreta que, em caso de uma outra pessoa compilar o seu código, ela use a versão que ela quiser do c++. Não necessariamente terá problemas de compatibilidade no futuro, mas para garantir que qualquer um que possa vir a usar seu código se faz uso do Makefile e rode seu programa da maneira que você construiu de acordo com o que acha mais correto, o uso do arquivo se faz necessário.
Uma boa observação, é que o arquivo Makefile é apenas um arquivo de instruções para a build do executável pelo compilador através de um sistema de builds, que no curso introdutório foi usado o make
pelo instrutor Gabriel.