The present prim (graphics primitive) system is SL (SecondLife), while adequate, hits some limitations to both what can be built and how efficiently (in terms of primitive count). Below I will propose a new primitive type - extruded/lathed-from-outline. The major advantage of this prim-type as I see it is that quite complex shapes can be made fairly simply by the non-3D-modeling-expert user.
The base of the 3-D prim in this proposal is a 2-D shape, this shape is then extruded, rotated, twisted, etc. It would be in-world editable from an extra pane in the object-build system. It is drawn on a 2-D grid using straight lines and curves. These shapes can exist in 2 forms: Closed shapes can exist anywhere on the 2-D shape grid, Open shapes can only exist on the x-positive side of the coordinate grid, and furthermore have the x coordinate of the start and end points forced to zero. Crossed-lines are not allowed. Multiple shapes and hollows in the cross-section could be allowed depending on how ambitious the coders were feeling - it is pretty standard 2-D vector editing stuff, and could be added later without upsetting existing cross-sections if planned for.
Closed shapes can be extruded or rotated, open shapes can only be rotated. Shapes have a theoretically arbitrary number of sides (though it may be limited to, say, 16 sides, for efficiency reasons - such a limit could be seamlessly be raised later as hardware improves, assuming there is a need). The detail of the flat shape can be altered pre-extrusion/rotation on the client-side by the client graphics detail settings -- ie, curved sides might be semi-flattened to reduce triangles on the client render-engine.
Cross-section shape edit functions will allow the cutting and joining of lines, and toggling them between strait lines and curves. Curves are defined as the smoothest possible transition from the direction of the next clockwise face to the direction of the next anticlockwise one. For open shapes, the lines beyond the start and end points are considered parallel to the x-axis.
Each line in the shape definition becomes a face on the extruded/rotated surface (plus the top and bottom faces). Curved lines are one face across the whole curve. Face numbers are calculated from 2 (0, and 1 are reserved for the ends/cutoffs) and are counted clockwise from the starting point on the 2-D shape. They can be displayed on the cross-section-shape edit pane to allow easy identification for programmatic manipulation of face textures.

Examples of editing closed- and open-shapes
Extrusions start as a closed outline which is fitted to the 3-D x and y dimensions. The outline is extruded along the z dimension. Along the z dimension the extrusion can be twisted, curved (ie: arcs, tori, etc), tapered, delta-offset and made flexible as per existing box, cylinder, etc. prims. On the X- and Y-dimensions, the shape can be slanted. The Z dimension CAN be set to zero, allowing true planes to be created.
Open shapes can ONLY be rotated. Closed shapes can be rotated provided they exist wholly on the x-positive side of the coordinate grid. Other features, namely twisting, tapering, delta and flexible are not allowed. X-Y slanting is allowed, though this time it effects the rotation rather than the base 2D shape. The 3-D form is created by aligning the 2-D y-axis of this shape to the 3-D z-axis and rotating it a prim-defined number of times around the z axis. The angular period of the rotation will be regular and the number of rotations will be defined at prim level. For example, 6 rotations will result in a shape that looks hexagonal from top-Down view, a rotation period of 5 will result in a pentagonal shape. As a special case, a rotation of 1 will result in a "smooth" rotation (ie, infinite). A rotation of 2 would create a plane symmetrical across the Z-axis. Zero and negative rotations are undefined. The actual number of rotations made by the client-side renderer will be clipped to a maximum value as defined by the client graphics detail settings. Rotation start and end can be defined in degrees, and cut faces (faces 0, and 1) will be flat from the shape edges to the rotation axis.