With using the GC, there is one other dilemma that I can think of, and that is attributes of GC objects (or lack thereof). The GC is great for doing comprehensive searches throughout the forest that are fast, however what to do when the objects you find don't have the attributes your are looking for? My example is AD printQueue objects. On my GC searches I find the printQueue objects OK, but they do not contain the PortName attribute I am looking for, and that's even if I add PortName to the PropertiesToLoad field of DirectorySearcher.
My current workaround is using the object's AdsPath, replacing 'GC:' with 'LDAP:', and then doing a BASE search on that object with the required properties loaded. This works ok and I get my properties, but is less than optimal! Yet another tradeoff between the GC and LDAP providers.