Когда работа будет завершена то я размещу подробный отчёт, думаю что на вики. Пока всё сыровато чтобы выкладывать, так как все будут видеть кучу мелких погрешностей и делать неверный вывод - “сколько там косяков, наверное вся работа кривая”. А вот этого бы не хотелось.
По поводу комбинаций тегов. Полное решение задачи может и возможно теоретически, но по-крайней мере крайне сложно практически. Даже если предположить, что удастся всё подробно расписать относительно одного объекта, то придётся разбираться с комбинацией объектов. Взять тот же building=yes. Ничто не мешает навесить на контур здания shop=* или amenity=*. И каждый дополнительный тег может привнести свои собственные комбинации. В реальных данных на контур building=yes, например, ещё накладываются man_made, landuse, highway. Где проходит грань между допустимыми и недопустимыми комбинациями тегов, особенно если учесть что “any tag you like”? В файле Владимирской области, например, 17 зданий, они же landuse, 4 здания highway, 5 населённых пунктов помечены тегом layer, 105 веев имеют только тег addr:housenumber и ничего более (нет addr:street) и т.п. Вообще комбинации порой весьма причудливы
Я придерживаюсь единственного рационального (с моей точки зрения) подхода - строю частотные таблицы и далее, сопоставляю сочетания с документацией. Если потенциально сочетание возможно (с моей точки зрения), то сочетание пропускается, если нет - то отбраковывается. Валидатор получается довольно грубым, но во многом это в силу свободности семантики языка OSM и трактовки правил. Нужно не забывать что и русском языке складывая валидные слова языка можно получить бессмыслицу, “мама ныла раму”. Но с другой стороны парадоксальные сочетания слов иногда имеют смысл, скажем, “папа глушил водку”