How can I source multiple bash scripts into each others properly?
If you use sh instead of source, it will load up the environment as you expect, instead of executing the script in the same environment:
dn=$( dirname "$0" )sh "$dn/init/init.sh"
This change will cause the code to run in a subshell instead of the same shell. You won't be able to do this for a script that needs a function from an outer shell, since you will still need to source that to have access to the function. But in your case, the only script that needs that can still be sourced, since you don't need $0 there.