I searched my own email archives and found that this is indeed frequently requested for IDLE. For example, Raymond Hettinger filed *two* different bug reports about it on behalf of his students, both closed as duplicates of
https://bugs.python.org/issue6143, which has been open with frequent discussion since 2009 (!).
I also found several other requests for this, e.g. one from this August in idle-dev, one from August 2018 in core-mentorship, another from August 2017 in idle-dev, and a long python-ideas thread from October 2016. (What is it with August? I really do think this is a "new student" thing...)
One reason it's important for IDLE is that IDLE's shell window slows down as its buffer gets longer, and it cannot easily be emptied (it's uneditable). And in IDLE, none of the solutions that print escape sequences work, because IDLE's shell window is not a terminal emulator.
Outside IDLE, the main problem seems to be that few people know enough to figure out it's a simple escape sequence, and the system commands vary by system (on my Mac it's "clear" and it prints ESC [ H ESC [ 2 J).
Let's add a function os.clear(), and perhaps IDLE (or some enterprising IDLE hacker) can monkey-patch that to do whatever makes IDLE's shell reset.