This is more of an academic question... but can ConcurrentDictionary.TryAdd fail? And if so in what cases and why?