What's been bothering myself more about Lengyel's approach is that he weighs tangents by the equivalent of inverse triangle area (area=cross(p2-p1,p3-p1)/2). Wouldn't it make more sense (and avoid a FP division) to scale by (the equivalent of) triangle area?
Are you talking about the value of r, which is 1.0F / (s1 * t2 - s2 * t1)? This divides out the "area" of the triangle in texture space so that the scale of the texture map doesn't matter, but does not have anything to do with the geometric position of the vertices. The tangents are still weighted based on the geometric area of the triangles because the variables x1, y1, z1, x2, y2, and z2 are not normalized in any way.