because any flaw in wheel spin or not doing what it thinks it's doing
Guess what: In any such system you are always going to have error - error in the output, error from the sensors - error everywhere.
If you want to have any hope of making the robot navigate properly within a certain level of probability of being in the proper location where it thinks it is (but only within a certain level of error - mind you!) - then you need to be thinking in this manner.
The problem, though, is that it is very difficult (but possible) to build a robot that navigates in such a manner. The main concept is known as SLAM (Simultaneous Localization and Mapping - google it), and there are as many possible solutions and algorithms as you could care to investigate (some are sized for small processing systems, others for much larger systems). Despite what you may read or see as you research, SLAM can be implemented as an outbound, on-board sensor system (think on-board the robot chassis LIDAR, ultrasonic sensors, cameras, etc) or an inbound, off-board beacon or sensor system (think cameras looking in on where the robot is, or IR beacons, or ultrasonic beacons, etc). Most SLAM discussion, though, focuses on sensors located on the chassis of the robot - so keep that in mind.
The process is difficult to understand, and more difficult to implement - but it is at the heart of the most advanced robot navigational systems being researched and implemented. That said, you don't see such things on robot vacuums, because they are so difficult to implement well, and that costs money, lowering profits (well - not completely true - I suspect that the Neato XV series use some form of simple SLAM or something real close). Instead, you get the typical random walk and edge following behavior such as the Roomba uses. Much simpler to implement, and the parts are inexpensive (which translates into larger profits).