A resposta específica à sua pergunta (pelo menos para Oracle e provavelmente para outros bancos de dados) é que o tamanho do campo não importa, apenas o tamanho dos dados. No entanto, isso não deve ser usado como um fator determinante para definir ou não o campo para o comprimento máximo permitido. Aqui estão alguns outros problemas que você deve considerar antes de maximizar o tamanho dos campos.
Formatação
Qualquer ferramenta cliente que formate os dados com base no tamanho dos campos exigirá considerações especiais de formatação. O SQL * Plus do Oracle, por exemplo, exibe o tamanho máximo das colunas Varchar2, mesmo que os dados tenham apenas um caractere. Comparar…
create table f1 (a varchar2(4000), b varchar2(4000));
create table f2 (a varchar2(5), b varchar2(5));
insert into f1 values ('a','b');
insert into f2 values ('a','b');
select * from f1;
select * from f2;
Tamanho
incorreto do campo de dados fornece um mecanismo adicional para capturar / impedir dados incorretos. Uma interface não deve tentar inserir 3000 caracteres em um campo de 100 caracteres, mas se esse campo estiver definido como 4000 caracteres, é possível que sim. O erro não foi detectado no estágio de entrada de dados, mas o sistema pode ter problemas ainda mais quando outro aplicativo tenta processar os dados e engasga. Como exemplo, se você decidir indexar posteriormente o campo no Oracle, excederá o comprimento máximo da chave (dependendo do tamanho e da concatenação do bloco). Vejo…
create index i1 on f1(a);
Memória
Se o aplicativo cliente alocar memória usando o tamanho máximo, o aplicativo alocaria significativamente mais memória do que o necessário. Considerações especiais teriam que ser feitas para evitar isso.
Documentação
O tamanho do campo fornece outro ponto de dados da documentação sobre os dados. Poderíamos chamar todas as tabelas t1, t2, t3 etc. e todos os campos f1, f2, f3 etc., mas especificando nomes significativos, melhor entendemos os dados. Por exemplo, se uma tabela de endereços de uma empresa com clientes nos EUA tiver um campo chamado State com dois caracteres, esperamos que a abreviação de dois caracteres entre nela. Por outro lado, se o campo tiver cem caracteres, podemos esperar que o nome completo do estado seja inserido no campo.
Tudo isso dito, parece prudente estar preparado para a mudança. Só porque todos os nomes de seus produtos hoje cabem em 20 caracteres não significa que eles sempre serão. Não exagere e faça 1000, mas deixe espaço para uma expansão plausível.