Tammy, I'd say your intuition is right: All functionality needed to
properly delete an object should be in the PL/SQL delete function for
that object, not spread half and half between the PL/SQL and Tcl code.
Some further evidence for this is that the group::delete Tcl proc
appears to have an old comment dating from the original 2000
implementation, "Maybe the relational constraint deletion should be
moved to the acs_group package..."
So I'd bet good money that the current situation with group::delete is
a historical, path of least resistance accident ("well, it's ugly but
this way I don't have to write a database upgrade script"), not the
result of any careful design.