I took CS106X this quarter and while I enjoyed the lecturer and the assignments, as an "enthusiast", I did not feel challenged. It was more of "let me get some more experience with programming" and not "wow, that's nice to know". The class just teaches some more data structures not covered in CS106A and recursion and touches on inheritance. From what I hear though CS140/143 (os & compilers) seem more interesting to me.
I'm one of the TAs (section leaders) for 106X this quarter. We get a pretty wide diversity of skill levels in the class, so it's tough to ensure that we challenge the experienced students while not scaring off everyone else.
However, the goal of 106X isn't to teach all of the complexities and nuances of algorithms (take CS161), fundamental principles of computing (take 103), or OS/low level understanding (take 107/140/143). Sure, we'd like students to think about these things, but we really want to make sure that students know how to program with
* Proper decomposition
* Sensible commenting/documentation
* Use of appropriate data structures/knowing when to employ recursion
If you want to get more "huh, that's cool", try taking 107 in the winter (Jerry is teaching that course as well).