As the title of the question states:
Why does starting a Supervisor in a GenServer cause problems with process restart behavior?
I found a discussion here that states the following:
Specifically:
"There is less guarantee provided by the supervision tree as the process might exit and the supervisor will not have terminated its children."
"This can lead to problems if the supervisors children are named because the named children might still exist when a restart occurs higher up the tree (above the process calling start_link in its init/1"
"you lose some advanced OTP features, like code reloading, as process modules are discovered by walking the supervision tree"
What's the underlying reason? Does this hold true in general?