Right now it's fairly common for a place to be in OSM twice, once as a node, and once as an area, typically on a boundary relation. This leads to city/town/etc labels sometimes being rendered twice on the map. Removing area rendering is not a good option, because this would leave some cities unrendered.
Options that come to mind are
- Fixing OpenStreetMap Carto so it renders place areas (see https://github.com/gravitystorm/openstreetmap-carto/issues/103)
- Deduplicating place labels in the vector tiles with SQL (some kind of SELECT DISTINCT ON ...)
- Deduplicating place labels in Mapnik (some of the label buffer-related options)
- Ignoring it for now