My rationale was that `DirectChannel` is the only subscribable channel that has a `final` `UnicastingDispatcher`. After further review, I see that the other framework subscribable channels have volatile dispatchers only because it might not get created in the constructor (but in `onInit()`) instead.

I think we can optimze them too (PubSub and amqp/jms ptp channels), at least with a volatile boolean.

My bigger concern was for custom `AbstractSubscribableChannel`s with which it seemed wrong to preempt that customization (which "might" involve a custom dispatcher), regardless of how many handlers there are.