After doing some more reading, I now think this isn't a bug. Evidently the unbuffered flag not only makes stdin unbuffered, but it also forces it into binary mode. I didn't realize that when I posted earlier.
So the SyntaxErrors arise because the interpreter isn't converting \r\n into \n because stdin is binary. Not a bug, although it would be nice to have an "unbuffered text mode" flag too... D'oh. -- http://mail.python.org/mailman/listinfo/python-list