That's quite interesting as a solution to the issue of Flexible ducting, I have to admit to having considered that option when I last looked at flexible ducting solutions.
The solution I eventually settled on (because I'm simple) was the old standby of Shapes and linetype definitions and the results are quite pleasing to the eye and require only one shape for all sizes of duct, and more importantly for me the Ductwork is easily modified as it's just a single line. Using this approach also allows for the output of Flexible duct sizes and lengths with a data extraction and if the end user doesnt want to see the flexible duct they can set it for center linetype (or up the ltscale so it reverts to a single line). plus it's easy to change the size of the duct as it's just a linetype.
One other benefit of a linetype solution is that as you can draw with it active you get to see the duct and make sure it's not drawn with tight bends.
Your function has collars which of course a simple linetype would not although it would be possible to build a collar shape into the linetype if needed. It might be nice if your routine would allow altering of the flexible point density so that it doesnt just scale with increases in duct size (if that makes sense)
Keep up the great work on the routine.