How small can it get?
Haskell, 67 61 bytes

f n=minimum$n:[f$div n d|d&lt;-read.pure&lt;$&gt;show n,d&gt;1,mod n d&lt;1]

Try it online!
Explanation:

read.pure&lt;$&gt;show n transforms the input integer n into a list of digits.
For each digit d from this list, we check d&gt;1 and mod n d&lt;1, that is whether d divides n.
If the checks are successful, we divide n by d and recursively apply f: f$div n d.
Altogether, this yields a list of the minimal integers from all sub-trees of n.
As the list might be empty, we append n to it and return the minimum of the list.