Probably reinventing the wheel a little, but I like the idea of doing all the toolpath generation using integer representations of the model. Part of the appeal for this is the plan to also use Z maps.
The basic idea is to use toolpaths that use the zigzag pattern over a rectangle that encloses the area to be machined. That path is easy to calculate in the XY plane. Then simply do a depth test against the model along each point of the path and you have the final pass of the toolpath. For the the initial passes, use the final pass at higher depths.
To speed things up, do a test at each point to see if that xyz location has already been machined, in which case you can move over it rapidly.
Why I really like this is that incorporating a rouging tool should be relatively easy with this approach.
The only downsides for now are that there will be errors on purely vertical walls and there may be an issue for tools that taper along the entire length. Not sure how common they are.