In reply to Weston Ruter.

@weston,
1. in the first year of any semi respectable CS degree you learn not to use globals. not seldom, not rarely, just simply not to use them. At the very worst case when it just can not be avoided you at least use a singleton pattern.

Ignoring the theoretical benefits of not doing that, this decision basically forces that there is only one session in any time, a limitation that there is no reason to have. I might want to customize the logo while my co-admin wants to change some widgets. This is not a big issue today but the more you force people into using the customizer and the more you will encourage them to have long transaction the bigger the problem will be.

2. It is defined like that in the fucking codex!!!!!!!!!!!! It was defined like that when @Nacin added it to avoid the inability to know when initialization was finished, and the customizer went and cluttered that black/white easy to understand definition. Now no one actually knows when core (and therefor plugins and themes) had finished to initialize and obviously other core features like fields API just copy pasting that code making the problem bigger