Interesting isn’t it?
I had no clue why this had happened but luckily for us, Barry gave a follow-up reply with an explanation. And here is what he wrote:
My example with ‘letters’ comes from a collision of three features:

recycling of short subscripts

silent coercion of types (boolean NA to numeric NA)

and the existence of five different NA values that all print the same.

[…] to really understand that letters is different from letters you have to see that:

in the first case, the NA is coerced to a numeric NA because it’s in a vector with a numeric ‘1′.

in the first case, you are selecting elements by supplying a vector of indexes

in the second case, your NAs are boolean (logical) NA values

hence your subscript is a logical vector

logical vectors are recycled

now your subscript is a vector of TRUE/FALSE values (which are all NA) of the same length as ‘letters’.

To make sure I understood Barry correctly, I tried the following code: