Basically agree with everything here. I was also surprised at how swiftly this film moved, not having seen it in at least a decade. It just flies right along, despite the 3+ hour run time and brutal subject matter.
I've heard criticisms like Hoberman and Mamet's before, and I tend to agree with Paul: I think these criticisms generally lose sight of the needs of dramatic storytelling, versus historical record. An audience watching drama responds to things like relatable characters, emotional highs and lows, a driving narrative, etc. You can subvert these things sometimes, but if it's totally devoid of that stuff they're going to check out.
So yes, Spielberg chose to focus his story on a non-Jew who was flawed but did a heroic thing in the end. I think this works well for his approach, for a couple of reasons:
1. Spielberg is, above all things, a brilliant director of action. I think this extends to his characters too: he works best with lead characters who are always moving and doing things. Schindler is that, and is Spielberg's way in to exploring the Holocaust. If his central character is Jewish then that character will have to be static and constantly victimized. I don't think Spielberg works well in that mode. (Seems like the only way to get really active Jewish protagonists in a Holocaust movie is to generate a fantasy world, as Tarantino did with Inglorious Basterds.)
2. The audience for this film is not just Jewish people. If Amy's statistic about Holocaust denial is to be believed, then it seems another important task for this film is to get people who might have doubted the existence of the Holocaust to believe it. Schindler is a non-Jew who is led down the path to full understanding of how terrible his government's treatment of Jews really was. The movie is leading its modern audience down the same path. This is part of what makes it effective as drama.
I've got more thoughts (boy, this movie was way more emotionally effective than I expected it to be on this rewatch), but will need to return later.