>> A complex statement is difficult to read when it is pieced together with a bunch of CHAR, CAST, and CONVERT fuctions.
I disagree. I think it is easier to read considering I don't have to go to another part of the procedure and find the Replace statements to figure out what someone is trying to do with a particular portion of the dynamic statement.
Of course, the best solution to the nvarchar 4000 character limit is to use nvarchar(max) in SQL Server 2005.