Respondendo a primeira pergunta: A vantagem do código aberto é principalmente possibilitar a contribuição de pessoas de fora da organização para somar ao projeto, isso vale desde issues com bugs report ou feature requests quanto até mesmo pull requests que somam em algo
Sobre o motivo das empresas cobrarem uma assinatura mesmo mantendo o código aberto tem alguns motivos, mas na minha opinião o mais relevante é possibilitar quem assina não ter que se preocupar com nada de infra/cloud, muitas empresas só precisam da tecnologia rodando e pode sair até mesmo mais barato só assinar o serviço do que alocar um devops só para implementar o ci/cd da aplicação