lib/* doesn't get reloaded in development

It depends on how you’ve required it. If you required it from the environment then no, you need to restart. If it’s required in your controllers and models then it should reload with them. I use the environment approach myself.