Gerald:
Running many Private DS among different Forms will work fine with this, since that complexity is handled between Cursor and Forms(s) by VFP. I often utilize a search Popup Form that can instantiate over and over, etc.
However, it is true that there will only be one Global App object and therefore each Property/Method declared will have to be unique to the System as opposed to being associated with FormA, FormB, FormC, etc.
To make this more complicated, though, you could associate Forms A,B,C, etc. with Global Vars (properties of the oGlobal object). Of course,this would require code Instantiation...anything instantiated using an oGlobal property name is seen throughout the program by that name, so you could use:
oGlobal.AddProperty('oFormA',"")
oGlobal.oFormA = CREATEOBJECT("Form")
oGloBal.oFormA.Caption = "This is FORMA"
oGlobal.oFormA.Show()
Just more ideas, HTH,