The way I see it, input() is mainly geared for prompting to stdout, and it is just one aspect that strangely uses stderr:
* Documentation says stdout
* Stdout is checked if it is a terminal and not redirected
* Gnu Readline is configured for stdout
* The fallback for non-terminals uses stdout
Arguments for using stderr:
* Consistency with Unix shell
* Consistency with the Python interactive interpreter prompt
Maybe it is more ideal to use stderr (I have no idea). But I think that would be a more drastic change.