Nice question, but this is not a "PRINT vagary". Instead this is just how type conversion works (http://msdn.microsoft.com/en-us/library/ms190309.aspx).
SELECT @lenStringArray + '-' + @lenDelimiter
behaves the same way, because int (@lenStringArray & @lenDelimiter) has a higher precedence than varchar(1) ('_').
Best Regards,
Chris Büttner