Do Manual do MySQL 5.0 :
Eu só uso VARCHAR quando tenho certeza que os dados que a coluna precisa conter nunca excederão um certo comprimento e, mesmo assim, sou cauteloso. Se estou armazenando uma string de texto, costumo usar um dos tipos TEXT.
Confira os Requisitos de armazenamento MySQL para obter mais informações sobre como os bytes são usados.