>  It should only be thrown if a internal module has no documentation

Not exactly.

* If a module has no documentation, no problem. 
* If a module has documentation but no metadata in module.js, no problem. (there should be a test for this one, BTW, but this isn't a docs test)
* If a module has documentation, but the module.js itself isn't in the place the docs expect it to be, an exception is thrown.

>> Throwing an exception is almost certainly the wrong thing to do here, I think.

> I'd rather handle that case separately and have a test written for it.

I don't understand your comment here. Do you want me to just put the exception code back, or do you also want a test that the JS is where we expect it to be? Also keep in mind that I'm being asked to remove the whole third-party packages thing (https://bugzilla.mozilla.org/show_bug.cgi?id=828570), in which case putting a lot of work into this is probably not a very sensible plan.