> I think the most amazing thing about SICP is that there are so FEW people who hate it: if Knuth were right, then only 1 out of 50 people would be giving this 5 stars, instead of about 25 out of 50.
This presumes that the people reviewing the book are a random sampling of the population, rather than being significantly skewed toward a subpopulation in which the "the one person in 50 who has this strange way of thinking that makes a programmer" was overrepresented compared to the population at large.
People who have enough interest in programming to pick up a text on it, enough concern about programming texts to bother to write give feedback on one, and -- more importantly -- all that for one with SICPs reputation for rigor and focus on a language that isn't the currently-industrially-popular language-du-jour are going to include people who have the "strange way of thinking that makes a programmer" at, one would expect, a much higher rate than the general population.
> what should we optimize for in a intro to CS class and why?
That depends, among other things, on the role of CS in the broader curriculum. There's more than one right answer: SICP has one focus, HtDP has another -- and both are appropriate focuses for an intro to CS course. SICP represents a focus that is appropriate for a first course for majors in an environment where CS isn't part of the "core", HtDP has a focus that is appropriate for a first course in CS as part of the core curriculum.