Aliás, uma coisa que estava pensando.
Quando lançarmos a primeira versão do BrazilUtils, vai ter uma aviso dizendo que as próximas versões provavelmente não serão compatíveis?
Ironlynx, dsiviotti, se vocês disserem que não, eu começo a chorar agora!
Tem uma biblioteca muito boa - a TimeAndMoney (http://timeandmoney.domainlanguage.com/) - que deixa bem claro que pode haver problemas de compatibilidade entre as várias versões da API, simplesmente porque pacotes e classes deixam de existir, ou mudam de lugar, conforme a TimeAndMoney evolui.
Para manter a compatibilidade entre as versões do BrazilUtils, não poderíamos mexer na estrutura do projeto, o que seria um sacrifício enorme para nós e para a qualidade do TiUzão.
Um exemplo: acho que deveríamos mudar o modo como validamos Cpf e Cnpj. Para mim, não deveria existir uma classe CpfCnpj, já que Cpf e Cnpj tratam de coisas (domínios) diferentes. E muito menos ter outras classes Cpf e Cnpj mais abaixo na hierarquia, o que confunde bastante. E isso fica ainda mais embananado se considermos que, para fazer validação tanto de Cpf, quanto de Cnpj, usa-se a classe CpfCnpj!
Supondo que fique tudo inalterado, não teríamos a liberdade de fazer mudanças estruturais importantes que eventualmente possam ser necessárias.
No caso citado acima, extrair todo o código comum para validação de Cpf e Cnpj para uma superclasse, digamos NumerosFiscais, e concentrar funcionalidades específicas para a validaçao de Cpf e Cnpj respectivamente nas classes de mesmo nome, Cpf e Cnpj, que extenderiam NumerosFiscais.