Oh, well. We could do several things:
 * Before executing the code check if `TelephonyTab` or `BalanceTab` exist and prevent execution if they does not exist.
 * As `initialize` is the **post-load** code to be executed, apply the formerly proposed approach to include an initialization callback.
 * Emit custom events when a tab loads in order to let the main application be aware about when each tab is ready.
 * When you know which panels you need to load, use `loadPanel()` (in the same way you use it when loading the USSD panel), then initialize it by using `initialize()` method of the tab.

Any of them avoid introducing *view to main application* dependencies.

Anyway, my opinion is that this is not a trivial task and I would want to try other approaches to reduce even more the slow start-up. There are several Cost Control issues easer than this one which have deep impact on the architecture.