Mooie, handige kaart @PeeWee32! Dat wil ik ook nog wel eens een keer leren om dat in QGis te doen 
Het script heeft wat meer doorlooptijd gekost maar doet het inmiddels. Het geeft:
2400 overeenkomsten, 917 / 829 dubbele punten voor afstand < 300
483 uniek drinkwaterkaart, 398 uniek openstreetmap
1513 overeenkomsten, 188 dubbele overeenkomsten voor afstand < 100
555 uniek drinkwaterkaart, 542 uniek openstreetmap
406 overeenkomsten, 60 dubbele overeenkomsten voor afstand < 50
90 uniek drinkwaterkaart, 593 uniek openstreetmap
1341 overeenkomsten, 35 dubbele overeenkomsten voor afstand < 30
642 uniek drinkwaterkaart, 646 uniek openstreetmap
Of in een plaatje:

Op basis hiervan zou ik voor 75 meter kiezen.
“dubbele overeenkomsten” zijn als één drinkwaterkaart punt matcht op twee of meer osm punten of andersom, i.e. één osm punt matcht op twee of meer drinkwaterkaart punten. Ik heb naar wat gevonden punten gekeken maar dit betekend ook dat de dubbele punten dicht bij elkaar liggen, zoals deze twee bij de ingang van het Wertheimpark:

De paarse 129 geeft aan dat dit entry 129 is in de drinkwaterkaart, de twee osm punten hebben een onderlinge afstand van 16 meter.
Bij 300 meter krijg je veel valse dubbele, bijvoorbeeld deze constellatie, Amsterdam Volewijck

De gele horizontale lijn is 300 meter, de gele verticale lijn is 30 meter. Voor alle 7 is er een goede match maar de onderste twee liggen bijv. ~ 70 meter uit elkaar dus bij < 100 meter krijg je al dubbele. Ik ga het script maar eens aanpassen om alleen de dichtstbijzijnde match te nemen.
De nummers in het begin van de post laten zien dat ongeveer de helft van de punten hetzelfde zijn in drinkwaterkaart en osm, een kwart is uniek voor osm, een kwart voor de drinkwaterkaart. Je ziet duidelijk dat het aparte databronnen zijn.
Ik zou het prima vinden als de drinkwaterkaart data van osm overneemt met attributie.