Currently when we project geometries, we are projecting the coordinates one by one. When data is outside the valid range of a map projection (or crosses a map boundary), invalid geometries are created.
Use the valid area of a map projection to "clip" the geometries before they are transformed.
A mercator projection is not valid at the poles and the map boundary is +- 180 degrees from the central meridian.
An exploration of this issue is being done by rschulz (stuck in the middle of the bush during May) as a demo. The demo is completely separate from geotools (does not modify geotools code).
I will stick the demo in svn once it works and place a list of thoughts/issues here.