To best fulfill the definition of CAD given above, a CAD system should be a computer system that allows modeling of physical systems. To date, modeling has been done almost entirely with hard-coded dedicated systems usable only for one form of design: there's not a lot in common between ANSYS and SPICE. But, after all, the physical universe is a unified place with common rules, and it's not at all clear that one should have to write tens of thousands of lines of FORTRAN just to get started on a general-purpose modeler.
CAD systems to date have developed into general-purpose tools that understand geometry. From MacDraw to Medusa there is a continuum of knowledge about geometry and operations on either 2D or 3D primitives. What knowledge of reality exists is usually welded on as an afterthought (the very word ``attribute'' indicates how reality takes a second seat to geometric description).
A typical CAD system offering has a geometry processor with attached database, providing a ``common design database''. Analysis and simulation sits on top of this core, embodied in a host of separate programs which intercommunicate, if at all, only by passing information through the database. If one wants to create a new analysis program, ``well, we have a FORTRAN compiler and library that lets you read the database''.
Need it be this way? Can we not imagine a geometry-based CAD system evolving into a system which describes physical objects, and knows about the various ways in which they interact (and can be taught about interactions as we define new forms of geometry today)? Such a system would encompass all of what a CAD system does today, and would provide a common user interface and model for working with reality represented in a database.
Editor: John Walker