So, my personal interest in ai extends about as far as getting abstraction up to a human-level API. In this video, Mario has concepts such as happiness, curiosity, etc and for the most part, the goal of this video is to show ways in which he can be made completely autonomous within a environment he knows nothing about. But a robot can have none of that and still be useful even in an open setting. Mario learning in your video stands in contrast to an approach where high-level actions are all pre-scripted (in the case of yesterday's robots: "do laundry", "clean window", "sponge dishes"), and the challenge is at a slightly lower level: machine vision, route planning, controls, collision avoidance, etc. At this level, you can get away with being largely "dumb", by simplifying tasks down boxes that might not make the most sense for a human to do, but cover more bases for a robot. In your example of a corn flake on the oatmeal on the bowl, one could completely re-script the task as: "collect dishes" ("search rooms" => "grab dirty dishes" => "bring to kitchen"), "let dishes soak", "wait", "scrub", "place in dishwasher", "replace soaking water as necessary". In this context, you have a less flexible machine, but a more reliable workflow. However, once you have the basic tasks above worked out, "flexibility" translates into supporting more and more corner cases. Autoclaving gets replaced by soaking and sponging gets replaced by light scrubbing gets replaced by washing and drying as each piece of kitchenware dictates. And once you have the basic (but central, and still largely difficult) robotics and vision / interaction abstractions worked out, you can get away with building a cleaning robot that has no conception of what it means to learn about cleaning, but is still made useful by the pre-scripted tree of logic used to pick actions to perform. Learning on top of this human-level API is challenging and useful, but it seems to me to still be a largely impenetrable at the most general levels. That is, the level at which the human does not need to teach the robot about "cleaning" or what method of cleaning makes the most sense in each context. I'm not going to pretend that I understand it well, so my interest usually falls off after the point at which robots become useful to me.
My issues with these things is that it is always clear that the AI may as well just have been programmed regularly. It isn't really "learning" as much as the programmer looks at the possibilities, and makes a framework designed to fit around them. This AI, when run a thousand times through the game, (maybe) couldn't learn some of the techniques that speed-runners figure out, because "game fucks up" isn't a pre-made "group" for actions to occur. It wouldn't work for a different situation. Can't adapt, can't do anything of that sort. Even if it is a really cool thing.
True enough. But one could imagine that such a system could be used with a computer that had optics in a 3D world. Point to the object, give it a name, enable the AI to measure and distinguish modifications of objects and modifications of its surroundings. That said, I think the most promising approach is this one.