O professor cria o shared module para não ficar importando as mesmas coisas em module diferente.... Por isso ele vai e cria o module Shared, mas porque ele não utiliza o App Module então se ele já existe?
Seria pelo fato de que se ele colocar no AppModule automaticamente já seria carregado essas importações de ReactiveFormModule e MensagemModule sem necessariamente precisar delas, já que ele utiliza a metodologia Lazy Loading na aplicação?
Porém como um dos componentes que utiliza ReactiveFormModule e MensagemModule é o component Home, de qualquer forma esses dois modules serão carregados logo de inicio, logo seria valido colocar os mesmos no AppModule.