Não ficou claro pra mim a diferença, nos exemplos de refatoração 29 e 30, entre a imutabilidade e mutabilidade. No exemplo 29 temos os tipos de funcionários sendo definidos por um enum e no exemplo 30 temos constantes. No exemplo 29 o é dito que para fazer de um vendedor um gerente teríamos que criar uma nova instância, ou seja é imutável, e já no exemplo 30 é dito que é possível tornar um vendedor gerente , ou um engenheiro também gerente só que não entendi como isso pode ser possível, No código 30 (mutável) temos constantes para definir os tipos de funcionários e a propriedade Tipo como somente leitura então a minha dúvida é como seria possível fazer de um vendedor ou engenheiro um gerente?