Let's say I want my maps application to know whether a building is commercial or residential. Some buildings have building=residential, others have building=yes or building=oui, and others just have landuse=commercial (or landuse=residential, suburban, quarter, suburb, neighbourhood, or residential=yes, or residential=apartments). This is not the worst-case scenario; we can write an interpreting adapter for these tags. But somewhere in the world, there will be edge-case tags the adapter won't handle. And it is challenging to use that approach for applications that tens of thousands of users will see and scrutinize.