Really interesting stuff I'm going to play with personally and in school I think. Thank you.
I use REPLs in ways that are similar to yours, but 1) you have several tricks that are new to me, and 2) you've been able to put into words many ideas that I haven't!
My way is here,
http://anggtwu.net/eepitch.html
and I'm certainly going to cite you in my presentation in the next EmacsConf! =)
Example of use: the ## comments and #. outputs in https://github.com/darius/sturm/blob/master/tictactoe.py#L20...
(It'll need a Python 3 update if you're more up with the times than me.)
Like smalltalk.
This works for regression tests, and documentation, but not so much for something like TDD, where the test is more like (or should be) a specification for the program you are about to write.