>A well-taught computer science course will not force anyone to rote-learn algorithms.
Agree but with the correction that you mean well-structured computer science course. The UK national A-level syllabus for "Decision 1", that which is under discussion, largely demands rote-learning for the examination. To avoid this, for whatever reason, would be very poor teaching.
There are structural deficiencies here, which teaching cannot overcome. (Also worth noting that this is part of the HS maths course, and mathematics teachers are typically not knowledgeable enough to offer the flavour you demand)
> Instead it ought to walk the students through the discovery process of improving from a naive but simple bubble sort, through more complicated algorithms.
Bubblesort is not naive and simple. Given the opportunity to invent a sorting algorithm from scratch, as a total beginner or as an expert, nobody would spontaneously suggest bubblesort in 2013.
Here is a more complete criticism of using bubblesort as an educational tool: http://www.cs.duke.edu/~ola/papers/bubble.pdf
If you open your course with bubblesort, it's my belief that a lot of capable students are going to be thinking "why did we start here? => computer science is not for me".
Overall, I agree with your teaching method - but bubblesort to quicksort is the wrong route. If sorting algorithms are introduced (I don't think it is a good start point), insertion/selection sort to bucket sort would be more pedagogical. The start point more closely matches students' naive understanding, and the end point forces teachers to be more clear about what the key learning points are.