However, I realized now that other villages around do have a polygon for the urban area, tagged only as “residential” (not village, or hamlet) and a waypoint somewhere in the polygon tagged as “village” and named.
Is this the right way to proceed? Should I tag all my “village” polygon as “residential” and create a waypoint for the “village” tag and the name?
There is no one single right way of mapping villages. In general do either / or:
Map the residential area and tag this also with place=village and name=*
OR 2. Map the residential area and ADD a separate node with the place & name tags
These do the same thing, but the latter is more flexible if you start mapping the landuse in a village in more detail: once that happens then trying to keep the name & the residential landuse on the same element can make life difficult. For instance in villages in Europe we may map in a single village the cemetery, football pitch, community gardens (allotments), farmsteads and shops all with different landuse. As some will be in the village centre a name placed on the residential area will be offset from the position people will naturally expect.
Additionally you may have a village with the residential areas are separated by agricultural land, so allowing more than one residential area for a village might be necessary. This also shows that the village & the residential area can be regarded as separate elements for OSM mapping purposes.
I would also strive to follow the most widely used local convention. It helps both you, and other mappers, if things are mapped in a similar style.