Minha resposta para isso não é sobre o uso de Max, mas sim sobre o motivo de VARCHAR(max) vs TEXT.
No meu livro; antes de tudo, a menos que você possa ter certeza absoluta de que nunca codificará nada além de texto em inglês e as pessoas não se referirão a nomes de locais estrangeiros, então você deve usar NVARCHAR ou NTEXT.
Em segundo lugar, é o que os campos permitem que você faça.
TEXT é difícil de atualizar em comparação com VARCHAR, mas você obtém a vantagem da Indexação de Texto Completo e muitas coisas inteligentes.
Por outro lado, VARCHAR(MAX) tem alguma ambiguidade, se o tamanho da célula for <8000 caracteres, ela será tratada como dados de linha. Se for maior, será tratado como um LOB para fins de armazenamento. Como você não pode saber isso sem consultar o RBAR, isso pode ter estratégias de otimização para locais onde você precisa ter certeza sobre seus dados e quantas leituras custam.
Caso contrário, se seu uso for relativamente mundano e você não espera ter problemas com o tamanho dos dados (ou seja, você está usando .Net e, portanto, não precisa se preocupar com o tamanho de seus objetos string/char*) então usar VARCHAR(max) está bem.