Matthew- note that the snippet of code you posted marks the code as "'Horizontal Roughing". Logically that would only be 3 axis machining, even if the post processor will later insert the 5 axis machining instructions.
The roughing pass is designed to get a lot of material out of the way quickly and easily. That means "easy to compute" for the tool-path generator also. 3 axis code is much easier to generate than 5 axis code.
Look for 5 axis motion much later in the file. It should still be a lot of lines of code. There is not much simplification possible for 5 axis move commands.
Feel free to skip the following "off topic" 5 axis toolpathing issues.
5 axis toolpathing is done with one of several strategies, one of the simplest is to keep the bit perpendicular to the final surface. That requires a lot of math to compute for each point that needs to be machined. The good part of this method is there is only one place where the spindle can be and have the bit perpendicular to the final surface. It also positions the cutting axis in places that may "collide" with not-yet-removed material. The spindle location needs to be checked for collisions also. That is another job of the roughing pass, remove the material to prevent these collisions during 5 axis surface milling.
Another strategy is "tangent" milling, which is can be even stranger to compute than "perpendicular" strategy, because the bit can lay across the surface in any of 360 directions. Which one of those directions keeps the spindle out of the way? Which is the fastest and easiest to reach? Does it prevent gouging of other parts of the surface?
Collision avoidance is one of the nastiest parts of designing a 5 axis toolpath generator.
I have never worked with Rhino beyond the demo. But generating toolpaths for 4 and 5 axes is something I have worked on.
"The best thing about building something new is either you succeed or learn something. Its a win-win situation."
--Greg Westbrook