I meant to include the following in my original reply but had to step away. You can see what I am talking about by using three different ways to create an ArcPy Polygon and then return the WKT for all three:
>>> polys = [
... arcpy.FromWKT("POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))"),
... arcpy.FromWKT("MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)))"),
... arcpy.Polygon(
... arcpy.Array([
... arcpy.Point(0, 0),
... arcpy.Point(1, 0),
... arcpy.Point(1, 1),
... arcpy.Point(0, 1),
... arcpy.Point(0, 0)
... ])
... )
... ]
...
>>> for poly in polys:
... print poly.WKT
...
MULTIPOLYGON (((0 0, 1 0, 1 1, 0 1, 0 0)))
MULTIPOLYGON (((0 0, 1 0, 1 1, 0 1, 0 0)))
MULTIPOLYGON (((1.0001220703125 0, 1.0001220703125 1.0001220703125, 0 1.0001220703125, 0 0, 1.0001220703125 0)))