Very obvious example - you can't paste code containing blank lines.

Another example: navigating this history is done line by line instead of using whole inputs.

It's just bare minimum effort - probably gnu readline piped directly into the interpreter or something.

I think they did improve it a lot very recently by importing the REPL from some other Python interpreter but I haven't upgraded to use that version yet so I don't know how good it is now.

> probably gnu readline piped directly into the interpreter or something

That is more or less how the REPL originally was implemented. I think there's more under the hood there now.

I still don't think what you describe qualifies as "shoddy". There are certainly limitations to the REPL, but "shoddy" to me implies that it's not really usable. I definitely would not agree with that.