Arduino-1.0 Serial.flush()

I partially agree that re-purposing Serial.flush() was a bad idea. But, it was frequently misused.

I also disagree with this:

and frankly unreliable because you can get stuck here!

How? If there is serial data to read, it is read and discarded. If there is no serial data, there is nothing to do, so the while loop doesn't get executed. How can you possibly get stuck? Neither Serial.available() or Serial.read() are blocking functions.