Yes, it's intentional.  The Queue will have the old ErrbitConfig, so it has to go. (I could have added code to make the queue able to accept a new ErrbitConfig, but that would required some threadsafety boilerplate code that I didn't want to do.) So I'll add a note here, since it's not obvious what's going on.

Shutdown semantically means 'shut down the app'; it might, in the future, do other kinds of cleanup things. So I wouldn't want to call it directly. However, there is some copy/paste code between here and there.  I think I'll extract a method.