I am thinking of an interface that goes in this direction for more than a year now, but I am not there yet.
A classic REPL works fine for sequential programs, but the problem with this is that as soon as you do anything meaningful and want to iterate, you get a bit lost. For example, imagine you demo on a system complexity like visualization using a Mondrian builder:
You first do:
view nodes: classes.
view edgeFrom: #superclass.
view treeLayout
This can work just great. But, now you need to add at the beginning:
view shape rectangle height: #numberOfLinesOfCode
You have to start again. The REPL interface was bound by the abilities of a terminal. But, we do not have those constraints anymore, and that interface has to be rethought.
One thing I am thinking of is having groups of text that get a preview. For example, imagine that you see a preview only after you say Cmd+Enter.
Now, about your points. You are right in that the implementation of Cmp+p was a nice solution 40 years ago, but now we can do better. There is no need for Cmd+p to affect the current text. This can be solved easily, and it is on the soon to show roadmap. This alone should alleviate the current playground usability.
Doru