It was my understanding that varchar(max) was meant to be a replacement to the text data type because of the issue that this question raises as well as other like:
Being able to use varchar(max) as a local variable (can't with text)
Being able to use most string functions with it
It can still hold 2Gb of data like text can, so what would this break?
Please correct me if I'm wrong. These discussions are great!