That is a nice description of how to arrive at the Y-combinator.
There was a talk using similar examples which I think is very educational.
https://www.infoq.com/presentations/Y-Combinator
I wrote down the examples used in the video (given the poor quality of video) to help myself learn about the Y-Combinator
https://gist.github.com/gdevanla/9171085
Recently, I presented this topic to my team and wrote down a Python equivalent of this example.
https://gist.github.com/gdevanla/07a08d99e183f494d036c6d6fe6...