The real problem is because of a probable bug in the way the new Maya (2015) is performing preparations for makeIdentity
when the nodes have shared history/connections/nodes (in this case the makeNurbCircle
node). It seems to be creating interim transformGeometry
nodes to compensate for the to-be frozen transforms in the wrong order in the chain. This wasn't the case in Maya 2012, when the order seems to be right. If you look at the comparison below, you'll see why.
2012 on the left; 2015 on the right:

Either ways, if you want to preserve this shared history and do the freeze transform this way for whatever reason, you might have to manually do what makeIdentity
attempts to, but in the cleaner way you want it to; i.e. connect up the transformGeometry
nodes properly in the right order before manually freezing transformations on the transforms (using xform
).
Here is something I just whipped up to do just that: (I will update the answer with comments and explanation when I find time later)
import maya.cmds as cmds
def makeIdentityCurvesWithSharedHistory(curves=[]):
for curve in curves:
curveShape = cmds.listRelatives(curve, shapes=True)[0]
makeCircle = cmds.listConnections(curveShape, type='makeNurbCircle')[0]
transformation = cmds.xform(curve, q=True, matrix=True)
transformGeoNode = cmds.createNode('transformGeometry')
cmds.setAttr('%s.transform' % transformGeoNode, transformation, type='matrix')
cmds.connectAttr('%s.outputCurve' % makeCircle, '%s.inputGeometry' % transformGeoNode)
cmds.connectAttr('%s.outputGeometry' % transformGeoNode, '%s.create' % curveShape, force=True)
cmds.xform(curve, matrix=[1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0])
circle1 = cmd.circle(nr=(0, 0, 1), c=(0, -1.1, 0), ch=1)
circle2 = cmd.duplicate(circle1[0], ic=1)
circle3 = cmd.duplicate(circle1[0], ic=1)
cmd.setAttr(circle2[0] + '.rotateZ', 120)
cmd.setAttr(circle3[0] + '.rotateZ', -120)
allCurves = circle1[0], circle2[0], circle3[0]
makeIdentityCurvesWithSharedHistory(allCurves)
If above code is used:

Disclaimer: Theoretically, this should work in any version of Maya; But I have tested it only on Maya 2015.