remote: bugs in repo dep
I was looking through our code and looks like there is one bug and one inefficiency in `DependencyREPO.download()` in [these two lines](https://github.com/iterative/dvc/blob/ccb0d7d1b3cc8e34fd10d912c6068f31032db41c/dvc/dependency/repo.py#L70-L71):
1. `self.def_path` is relative to `stage.wdir` usually, not repo root as `Repo.find_out_by_relpath()` assumes. (not a bug, ignore)
2. The code is fetching all stage outs instead if a single one. (take a look at Repo.open that does that already)

@efiop do you mind taking a look?
diff --git a/dvc/dependency/repo.py b/dvc/dependency/repo.py
index f70f22406..30d49fdc5 100644
--- a/dvc/dependency/repo.py
+++ b/dvc/dependency/repo.py
@@ -68,7 +68,8 @@ class DependencyREPO(DependencyLOCAL):
             self.def_repo[self.PARAM_REV_LOCK] = repo.scm.get_rev()
 
             out = repo.find_out_by_relpath(self.def_path)
-            repo.fetch(out.stage.path)
+            with repo.state:
+                repo.cloud.pull(out.get_used_cache())
             to.info = copy.copy(out.info)
             to.checkout()
 
diff --git a/dvc/repo/get.py b/dvc/repo/get.py
index a1e14326b..72a147d2f 100644
--- a/dvc/repo/get.py
+++ b/dvc/repo/get.py
@@ -36,7 +36,8 @@ def get(url, path, out=None, rev=None):
                 "reflink,hardlink,copy",
             )
             o = repo.find_out_by_relpath(path)
-            repo.fetch(o.stage.path)
+            with repo.state:
+                repo.cloud.pull(o.get_used_cache())
             o.path_info = PathInfo(os.path.abspath(out))
             with o.repo.state:
                 o.checkout()
['dvc/repo/get.py', 'dvc/dependency/repo.py']