well, the key difference is that one is auto-injected into your context for dynamic lookup and the other is loaded on-demand as needed and is contingent upon the llm discovering it.
That difference alone likely accounts for some not insignificant discrepancies. But without numbers, it's hard to say.