Have a look in CGAL-3.x/include/CGAL/IO and CGAL-3.x/examples/Polyhedron_IO for a whole bunch of supported 2D and 3D CAD file formats and associated utility functions already present in CGAL, especially the File_writer_*.h files.
I'm not far enough along figuring out all the interdependencies on the OpenSCAD side of things to get it working myself yet, but it looks like it shouldn't be too difficult to add a generic "import_cgal()" function to OpenSCAD to cover most/all the CGAL-supported file formats.
Some of them may do a better job of handling multi-part, hollow constructs and colors!
"The future is already here. It's just not very evenly distributed" -- William Gibson