As for question number 3, can you share with us the code that you use to fetch the PackageItem and after that the Package objects(steps 2 and 1). If the context instance is one and the same and you have already loaded PackageItem and Sample, it is expected behavior that Package, PackageItem and Sample are loaded once again if you are trying to load the Package object. The reason for this is that the FetchStrategy is being applied on the top-most object in the graph and in this case that object is Package. That means that whenever you load the Package object you will get the PackageItem and Sample objects loaded with it even if you have loaded those objects in another way before that.
Sending us a code-sample will really be helpful for us to give you the answers for questions 3 and 4 as there are a lot of ways the Fetch Strategies can be applied and they should be used carefully so no additional and unexpected queries are produced.
All the best,
the Telerik team
SP1 for Q3’11 of Telerik OpenAccess ORM is available for download.