Thanks for the Neato writeup, Tony. I was looking at those and ran across the same complaints and praises. I also read that it's far smarter about cleaning an entire floor than a Roomba. Something about how it learns the layout of the floor it's on, and if it can't finish all the rooms in one go, it'll return to the base and come back to the rooms it hasn't done until it finishes? Is that correct? That seems pretty smart to me.
That is exactly correct. When cleaning, it uses a relatively intelligent pattern, going in nice rows and columns, and remembering to go back and catch nooks and crannies that it missed when there are complex shapes to work around. It does this by using some kind of a scanning rangefinder (mounted in that "conning tower" I mentioned), and occasionally you'll see it stop and 360 when it reaches various vantage points, to keep itself up to date about where everything is.
It also seems to be fairly intelligent about modifying its pattern when the nature of its world changes. For instance, if, in its initial scan, it counts your legs as furniture, then you walk away, it will still go back and vacuum the empty spot where you once stood, since it will notice that you're not standing there any more. Same thing if you move chairs or furniture. It's constantly re-evaluating the shape of the world around it, and noticing that some things (like the walls) don't ever move, and then other things (like ferrets and people) move occasionally.
Because it keeps this in memory, it can, if needed, go back to its base station to top off its charge and then pick up where it left off. However, I've found that, in my normal-sized house, it never needs to do this, because its more-efficient vacuuming pattern means that it doesn't run the battery down nearly as badly as the Roomba did; it gets more actual cleaning done per-charge than a Roomba could.