Tipo genérico perdido para membro do tipo bruto

Eu encontrei um comportamento estranho quando se trabalha com genéricos.

Nesta aulaFoo<T>, astrings&nbsp;membro não tem nada a ver comT:

package test;
import java.util.ArrayList;

public class Foo<T> {
    ArrayList<String> strings;

    T getSome() {
        return null;
    }
}

A classe é usada no main:

package test;

public class Main {

    public static void main() {
        Foo<Integer> intFoo = new Foo<>();
        Integer i = intFoo.getSome();
        String s1 = intFoo.strings.get(0);

        Foo rawFoo = new Foo();
        Object o = rawFoo.getSome();
        String s2 = rawFoo.strings.get(0); // Compilation error on this line
    }
}

O erro de compilação é "tipos incompatíveis. Required: String found: Object".

Parece que o Java esquece oString&nbsp;digite argumento paraArrayList&nbsp;quando tipo cru deFoo&nbsp;é usado.

Minha versão do java é 1.7.0_21