• A good question (which I got wrong :(), but I think that these references better explain what's happening:

    http://msdn.microsoft.com/en-us/library/ms190276 (operator precedence)

    http://msdn.microsoft.com/en-us/library/ms190309 (data type precedence)

    When two operators have the same precedence (as concatenate and add do), then they are evaluated from left to right, so the first plus (concatenate) is done first. When the second plus is evaluated, data type precedence is considered and Int trumps String.