We do have a document but we are reviewing to make sure it is up to date and will publish it afterward.
In regard to the "b" object, it is declared fairly early within the process of loading the library. While it's not available in a Pre Loader extension, it becomes available for use to any tag scoped to All Tags or to a specific tag, then not available for any extension scoped to DOM Ready.
Yes, even though tags do fire at DOM Ready by default, the "b" object is re-declared for use within the tag templates.
If you are ever confused about when or when not to use, it is safe to use "utag.data" instead of "b" and you will be referencing the same object.
"b" getting declared is a little more complex than what I state if you are looking at the code, but in regard to making configurations in TealiumIQ this should suffice. Please let me know if this helps or if there are any other questions.