On demand JS loader review
My 2 cents:


please use lowercase camelcase ( lib_is_list -> libIsList )
The first 5 lines seem clumsy

Checking for an array with typeof 'object' is odd
Changing the type of a variable/parameter is odd and not recommended, you do this twice
Dont drop newlines ( for (var i in lib) require(lib[i], obj, libs_obj); )

You can use lib.callbacks = lib.callbacks || [] instead of if (lib.callbacks === undefined) lib.callbacks = [];
Why would you assign first callbacks, and then check() whether you should return
Your handling of obj , count and callbacks is roundabout, the lack of newlines dont help, 
The function name ready() is unfortunate, ready is most commly used for the callback after http requests
You should consider merging/reworking ready/script_downloaded/download_script
The src parameter is unfortunate, since it does not contain the source, maybe url ?
I like defensive programming, but checking for callback seems much, since your code guarantees it


Overal, I have to say this seems over-engineered, I think you are trying to be too smart.