You could use Recurse Query.
It is fine. If you add a “shortcut” edge, you would have to deal with future changes by yourself. It is fine to rely on just edges.
no, it is also fine.
As far I can see you are doing good from what you have shared.
Cheers.