Invocação do método genérico java

Dado o método genérico:

<T> List<T> getGenericList(int i) {...}

o código a seguir é compilado sem nenhum aviso:

public List<String> getStringList(boolean b){
    if(b)
        return getGenericList(0);
    else
        return getGenericList(1);
}

mas este gera um erro de compilação 'Tipo incompatível':

public List<String> getStringList(boolean b) {
    return (b) ? getGenericList(0) : getGenericList(1);
}

Por quê

questionAnswers(5)

yourAnswerToTheQuestion