Eu não falei excluir planos passados. Releia meu comentário.
Supondo que um usuário tenha assinado o plano A, com valor de 9,99. A empresa faz uma promoção e 100 usuários ganham o plano A com mensalidade de 5,99 por 6 meses, depois volta a 9,99.
Na sua solução, voce está falando pra ficar criando plano e depois movendo os usuários da promoção pro plano normal, certo? Isso é pensamento de quem não sabe trabalhar em escala.
Imagine um produto com 50 milhões de usuários, com 2.500 tipos de promoção ao longo de 3 anos. Imagina a zona que ficaria com a sua solução.
Com NoSQL, não precisa criar nada, nenhum plano a mais. Só anexar o documento plano no registro do usuário e pronto! Zero dor de cabeça, pode ter 5 bilhões de usuários com 765.000 promoções diferentes, não importa.
Aliás, sabe quem faz exatamente isso que eu comentei? O Google One.
O problema que a maioria dos devs não tem noção de escala. Ai sugerem esse tipo de solução sua, porque não sabem trabalhar com múltiplas ferramentas. Querem usar martelo pra tudo quando se tem chave de fenda, serra etc