Acredito que isso seja possível, já que a configuração vagrant é gerada pela execução de um arquivo Ruby; Usando as bibliotecas ruby padrão, você pode examinar o arquivo, selecionar um MAC não utilizado e girar a VM conforme descreve, conectando o valor recuperado à diretiva de configuração aqui .
No entanto, eu recomendaria que, se as VMs fossem instaladas em hosts de diferentes usuários, em vez de usar um arquivo, seria melhor fornecer um serviço da Web que fornecesse à configuração do vagrant um endereço MAC não utilizado, gerenciando centralmente pool de endereços que são considerados usados ou não.
Você pode usar algo como a funcionalidade fornecida aqui para informar ao seu serviço da web que o endereço MAC não está mais sendo usado em vagrant halt
ou vagrant destroy