No estoy muy seguro de ello, tendría que repasarlo, pero creo que te estas equivocando.
En programación, se reserva memoria para ejecutar los procesos, pero creo que aquí no es igual.
Cuando tu permites que se escriban hasta 4000 caracteres, no quiere decir que el mensaje que no llegue a esa cantidad, va a ocupar el mismo espacio, que el mensaje que si llega. Si fuera así, daría igual si alguien escribe o no escribe, la base de datos ya sería enorme desde el momento de su creación.
Un mensaje de 20 caracteres, siempre ocupará menos que uno de 4000, de ahí la obviedad de la pregunta.
Ya te digo que hablo un poco de memoria, pero lo miraré mas detenidamente y te contaré.
Saludos