Certain operations cannot support nonuniform scaling. This includes all functions that return an external curve or surface (including NURBS surfaces).
The entire chain of transforms from the subentity path is cached at the time that an AcBr object's subentity path is set (for efficiency reasons). If a block reference is moved, it will point to a new transform matrix but the AcBr object will not know that its cached transform is out of date. If an insert is changed to refer to a different AutoCAD entity, the subentity path simply no longer has relevance and should be updated to reflect the new entity reference before being used to reinitialize all relevant AcBr objects.
Singularities (such as the apex of a cone) map to edges in AutoCAD and thus can be used to initialize an AcBrEdge for the express purpose of querying for the vertex, but cannot be queried for curve geometry or used to set an AcBrLoopEdgeTraverser. They can also be accessed using an AcBrLoopVertexTraverser, as a singularity corresponds to a single loop boundary of a face.
Just as with AcDbObject pointers, AcBr objects cannot be used once the AutoCAD database object has been closed in the database or goes out of scope; they are not persistent. Any change to the database object will be flagged as an eBrepChanged error, unless the validation level has been set to ignore database changes. An out-of-scope or closed database object will generally cause Acad::eNotInDatabase to be returned.