Cinema 4D Version: R21
OS: Windows 10
UPDATE: Not a bug, the CPolygon determines whether it's a triangle by checking if c == d.
Setting the 'c' component of a triangle CPolygon to anything other than 0 will cause the CPolygon to no longer be a triangle.
Foo = c4d.CPolygon(0, 1, 2)
Foo.IsTriangle() # True
Foo.c = 0
Foo.IsTriangle() # True
Foo.c = 5
Foo.IsTriangle() # False
EDIT: The problem also occurs with the C++ sdk, and also occurs if you set 'c' to 0.
CPolygon x( 0, 1, 2 );
x.IsTriangle(); // True
x.c = 0;
x.IsTriangle(); // False