Perhaps it is a good idea to create a the boost::polygon as a number of posts address the library. I also have some questions regarding this boost::polygon.
Regarding traits, I am not sure if semantics is really that important to get the job done. Perhaps the author was of the same opinion at the time.
Regarding "p0()" instead of "p0", it could be for the same reason as in "point_xy<>" in boost geometry - so that one could an accessor and/or be able to store a sack of potatoes as a CoordinateType. :)
greetings,
mike