O que posso oferecer em termos de experiência é que, se você achar que precisa alterar a definição de um tipo de tabela definido pelo usuário, precisará eliminar todas referência ao tipo antes que você possa brincar com ele. Abaixo na seção Contras mencionou esse grande aborrecimento. Então, para nós, valeu a pena a manutenção do código para definir tipos de tabela exclusivos com base no uso esperado, mesmo que correspondesse aos tipos existentes. YMMV