What happens when the same dependency is declared with different scopes for a given DAG? Currently they are treated as different dependencies. But customizing DependantBase.cache_key they can be made to be treated as the same dependency. But this cannot be changed independently of caching. We could have 2 "cache keys", but even then what if we want to have one replace the other, with some specific business logic?