concordo com os pontos 1 e 2, mas meu pitaco sobre o 3: qualquer nivel a mais de abstração utilizado no codigo gera um problema para iniciantes. Porque ? Para quem não sabe como as abstrações existentes no projeto funcionam as coisas acontecem como magica. Isso gera duvidas quando o caminho feliz não funciona. Alem de ter mais syntax e conceitos a se aprender.