Tim Crowson
This is not clear to me... Let's say we have prototypes in some shared location on the stage, outside of any PointInstancer namespace.... if I make those prototypes instanceable, no matter what I do, the PointInstancer copies them to its own namespace. What I want to know is.... do those represent unique instances in memory, i.e. duplicates of the original prototypes, are they simply pointers to the shared prototype? If check the USD file created from this, it's not clear at all.
In the Scene Graph Tree panel, native instances are colored blue whereas regular references show up as green.
So below is a regular reference of the scenario you described:

The SphereAsset prototypes in pi1 and pi2 both reference the root-level SphereAsset prim so there are now three copies of the asset (the two references could, for example, both get different overrides since they are unique). Put another way, a regular reference in USD doesn't share between other references of the same source, which is what makes overrides possible.
Now set each prototype to instanceable:

The light blue color represents the root prim of an instance and the darker blue/purple represents a non-root prim. Non-root instance prims can't be modified in a way that makes them unique however since they are just pointing at an implicitly generated prototype.
I'm not sure if the SceneGraphTree is able to show prototypes but in usdview they can be displayed via the "Show" menu of the browser (the prim named "__Prototype_1")

The main catch with native instancing overall is there has to be at least one composition arc on the prim being made instanceable. My example sets up a reference (which is the most common) but any arc is valid. USD then uses the arc criteria to decide if two prims being made instanceable are actually the same (e.g. two references with the same target).