Well, a friend helped me figure out the problem... I'm passing line segments in to Poly(), not corners of the poly, so instead of a square it's really making an octagon with four sides of length 0. Presumably this causes some excitement when it comes time to calculate the normals for those sides, or something. It might not be a bad idea to have a check for this in Chipmunk, when you have it compiled in debug mode at least.
Still, it's entertaining to watch the video.