Andrew, you are right. ns_eval does the right thing and queues the script for all interpreters, so idle threads are updated as well (i remember a verison of ns_eval, which was just updating the blueprint, my fault).
so apm_load_any_changed_libraries could be probably replaced by something like a thread checking the watched files and doing simply a ns_eval {source somefile}.