Si QGIS está calculando el centroide con GEOS que es un puerto JTS entonces el algoritmo es este http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/algorithm/CentroidArea.html. Sobre la teoría hay un enlace en el javadoc en http://www.faqs.org/faqs/graphics/algorithms-faq/, ver la sección 2.02: ¿Cómo se puede calcular el centroide de un polígono?.
El centroide (también conocido como centro de masa o centro de gravedad) de un polígono se puede calcular como la suma ponderada de los centroides de una partición del polígono en triángulos. El centroide de un triángulo es simplemente el promedio de sus tres vértices, es decir, tiene coordenadas (x1 + x2 + x3)/3 y (y1 + y2 + y3)/3. Esto sugiere primero triangular el polígono, luego formar una suma de los centroides de cada triángulo, ponderados por el área de cada triángulo, la suma total normalizada por el área total del polígono. Esto funciona, pero hay un método más simple: la triangulación no necesita ser una partición, sino que puede utilizar triángulos con orientación positiva y negativa (con áreas positivas y negativas), como se utiliza al calcular el área de un polígono. Esto lleva a un algoritmo muy simple para calcular el centroide, basado en una suma de centroides de triángulos ponderados con su área firmada. Los triángulos pueden ser aquellos formados por algún punto fijo, por ejemplo, el vértice v0 del polígono, y los dos extremos de bordes consecutivos del polígono: (v1,v2), (v2,v3), etc. El área de un triángulo con vértices a, b, c es la mitad de esta expresión: (b[X] - a[X]) * (c[Y] - a[Y]) - (c[X] - a[X]) * (b[Y] - a[Y]);
Código disponible en ftp://cs.smith.edu/pub/code/centroid.c (3K).
Referencia: [Gems IV] pp.3-6; también incluye código.
Me parece que el método es preciso. Si deseas verificar cómo se utilizan los valores de coordenadas y si puede haber errores de redondeo, etc., puedes revisar el código fuente de JTS o GEOS.