Put's, de fato essa quebra de espectativa é ruim mesmo!
Olha sobre essa parte do warning de uso de nil, ou eu ou o post está errado.
Mas olha esse link e faz uns testes https://play.vlang.io/?query=7303deca28
Deixei algumas partes comentadas só para melhorar no teste.
E ele não permite nem compilar(falha com o C), e mesmo assim só é possível utilizar em um bloco unsafe, se o método estiver com um atributo unsafe, ainda assim não é suficiente, porque para cada uso inseguro que a linguagem não recomenda, precisa estar em um bloco unsafe assim como qualquer linguagem, mas cada linguagem possuí sua régua do que é seguro ou não.
E o gerenciamento de memória atual está de fato ruim. Eu esperava que fosse melhor, hoje ficou por padrão o uso de GC, porém ainda está em constantes melhoras(até porque o nativo não pode ter sobrecarga de GC) o gerenciador de memória da linguagem, mas eu to torcendo pra que no final possamos usar tudo o que foi prometido.
(Não sei você, mas eu acho massa demais não precisar estar dando free e vendo onde a memória pode vazar, e com custo zero!(só precisa funcionar 🤣🤣). E eu falo isso porque esses dias tive que estudar um vazamento de memória de um app grande desenvolvido com delphi, não foi uma tarefa trivial. Um free simples depois de um uso é tranquilo, mas tem as passagens de referências de onde começa e onde termina, mas isso você já sabe 😜.)
E vlw demais, esse assunto ta rendendo de uma forma massa! 💪🏻