Oi @cyberlacs,
Acho que pro seu caso não existe uma maneira correta, existem sim várias formas de fazer. O que você precisa levar em consideração nessa sua abordagem é que, usando taxonomias hierárquicas, o usuário vai poder selecionar o checkbox para “Rio de Janeiro” como cidade e “São Paulo” como estado, por exemplo. Isso é um problema pra você ou pro seu cliente?
Outra forma, que vai ficando mais complexa à medida que vamos pensando em termos de consistência e possíveis erros no preenchimento, é fazer tudo com campos personalizados e com preenchimento passo a passo, por javascript mesmo: depois que preencher o estado pode selecionar as cidades daquele estado, depois que preencher cidade pode preencher vila naquela cidade e assim por diante.
Essa solução, embora mais segura, é mais difícil de ser implementada (tanto na administração quanto no site mesmo), então você vai ter que decidir o quanto de esforço pode e quer gastar na solução.
Resumindo: a solução por taxonomia não é errada, só pode permitir preenchimentos errados, além de possivelmente ter uma performance pior.
Se tiver mais alguma dúvida é só deixar aqui que o pessoal vai tentando ajudar, senão não esqueça de marcar seu tópico como resolvido.