IMNSHO, implementing a true b-rep, parametric cad system is extremely non trivial
Take a look at the OpenCascade (OCC) requirements.
http://www.opencascade.org/getocc/require/
What I’d like you to notice is the sheer size of the installation (600+ MB). And yes, I know that the size of a program is not a very good measurement, but there is still an order of magnitude or two between Blender and OCC.
I’ve looked into the source of OCC a little, and it appears to be fairly feature complete from a CAD point of view. When I looked at the sources (about a year ago) there was no real GUI to go along with this… there was only a back-end.
Implementing enough of this type of functionality to be useful would be a major undertaking.
The bottom line is that CAD systems and Blender-like systems are worlds apart. While the output is similar, the focus, methods, techniques, workflow, philosophy, implemetations, etc… are very dissimilar. Think of the differences between bit-map and vector graphics. There is a reason why Adobe Illustrator and Adobe Photoshop are different programs. Will you find functionality shared between Photoshop and Illustrator? Yes, and this is a good thing. Should these two programs be merged into one? Probably not.
So, the real question is, what types of CAD functionality should cross over into Blender?
IMO the most useful and productive features (for mesh AND nurbs) would be: booleans (good ones ;)), fillets/chamfers, im/export in CAD format (IGES specifically), and measurments/dimensions, probably in roughly this order.
The time-wasters would be: parametrics, b-reps, drawing-style features such as formats/symbols/blocks, assembly constraints, sketching constraints, datuming schemes, CAM functionality such as toolpaths, blah blah blah, the list goes on and on. Some of these could be supported in a limited form (such as parametrics and constraints) and still be useful in Blender, but I wouldn’t try to make such features complete enough to be useful for a CAD package.
Casey