If I import a module with name `XPCOMUtils.jsm` I think it only exposes the `XPCOMUtils` object and behaves like the Gecko one.
If I want to extend and modify that module, I would change it's name a little bit, for example `nttXPCOMUtils.jsm`.
Instead that I created the `dlg.jsm` module which exposes the shorts for `XPCOM.defineLazy*Getter`.

If I will use `XPCOMUtils`' component helper functions then I import `XPCOMUtils.jsm`.
When I will define some lazy getter I will import `dlg.jsm` to avoid all those boilerplate.
Of course `dlg.jsm` would be useless if I would write `XPCOMUtils.defineLazyGetter()` instead. But I don't want to write so long stuff.