I don't believe that the alternative would be likely to be merged at this juncture. This mutation is relatively easy to reason about IMO: when we `openPackageObjectTraverse` reuses the package object symbol for a source completer, remove all package-object owned symbols from the enclosing package class. It addresses an oversight of the previous implementation.