It looks like when adding a directory into $PATH, its subdirectories are not added recursively. So can I do that? Or is there a reason why this is not supported?
Add them recursively using find like so:
WARNING: As mentioned in the comments to the question this isn't encouraged as it poses a security risk because there is no guarantee that executable files in the directories added aren't malicious.
It's probably a better solution to follow Gilles' answer and use stow
The usual unix directory structure has application files sorted into directories by kind:
What might occasionally be useful is to include all the
However, this is rarely done. The usual method when executables in non-standard directories are to be in