This is very cool, but I need to re-read this a few times to make sure I really understand it.
I will comment further once I have wrapped my head around this further.
Great work!
I second the question about renaming can.Observe to can.Map