Oi Guilherme, tudo bem?
A utilização de subclasses em HTML e CSS é uma prática comum e pode trazer benefícios na organização do código e na estilização dos elementos.
Quando a instrutora criou a classe "principal" para adicionar a foto do background, ela queria aplicar estilos específicos apenas àquele elemento. Já a subclasse "container" foi criada para definir a altura do elemento, porque essa altura é diferente dos demais elementos com a classe "principal".
Ao separar as características em classes diferentes, é possível reutilizar a classe "principal" em outros elementos sem a necessidade de repetir a definição de altura. Além disso, caso seja necessário alterar a altura do elemento, basta modificar a subclasse "container" sem afetar os demais elementos com a classe "principal".
Essa separação também facilita a manutenção do código, pois torna mais claro e organizado o que cada classe representa e quais estilos estão sendo aplicados em cada uma delas.
Um abraço e bons estudos.