Why would you not want this for the dll copy local case ?  Is it because you might read the dll again soon after ?  What if you copy 1000's of dlls ?
Is it always clear when its a dll copy case and when its something else ?  I am thinking we should do this at a lower level for all file io, if enabled.