¿Por qué en el patrón ViewHolder la clase ViewHolder debería ser estática?

Solo intento comprender mejor el siguiente patrón que utilizo regularmente para optimizarListView

Mis lecturas solo me indicaron el hecho de que una clase interna estática se trata como una clase de nivel superior. ¿Cuál es el beneficio de tal cosa en comparación con una clase miembro (no estática)?

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Comment comment = getItem(position);
    ViewHolder holder;
    if (convertView == null){
        holder = new ViewHolder();
        convertView = LayoutInflater.from(context).inflate(R.layout.mylayout, null);
        holder.nickname = (TextView) ((ViewGroup) convertView).findViewById(R.id.nickname);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.nickname.setText(comment.getMember_nickname());
    CharSequence
    return convertView;
}

public static class ViewHolder{
    TextView nickname;
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta